logique de creation de discussions

This commit is contained in:
gokhoal
2026-06-10 22:46:03 +02:00
parent 127023fd7f
commit fd8d33642e
3 changed files with 53 additions and 21 deletions
@@ -1,31 +1,59 @@
import {Component, inject, signal} from '@angular/core';
import {Router} from "@angular/router";
import {addIcons} from "ionicons";
import {closeOutline} from "ionicons/icons";
import {
IonButton,
IonButtons,
IonContent,
IonHeader, IonIcon, IonInput,
IonItem,
IonModal,
IonTitle,
IonToolbar
} from "@ionic/angular/standalone";
import { Component, inject, signal } from '@angular/core';
import { Router } from "@angular/router";
import { ReactiveFormsModule, FormControl } from "@angular/forms";
import { addIcons } from "ionicons";
import { closeOutline } from "ionicons/icons";
import { IonIcon, IonInput, IonItem, IonModal } from "@ionic/angular/standalone";
import { discussionsService } from "../../../core/chat/discussion.service";
@Component({
selector: 'app-menu-nav',
imports: [IonModal, IonItem, IonInput, IonIcon],
imports: [IonModal, IonItem, IonInput, IonIcon, ReactiveFormsModule],
templateUrl: './menu-nav.component.html',
styleUrl: './menu-nav.component.css'
})
export class MenuNav {
private router = inject(Router);
private discussionService = inject(discussionsService);
isModalOpen = signal(false);
isLoading = signal(false);
errorMsg = signal<string | null>(null);
username = new FormControl('');
constructor() {
addIcons({ closeOutline });
}
openNav() { this.isModalOpen.set(true); }
closeNav() { this.isModalOpen.set(false); }
}
closeNav() {
this.isModalOpen.set(false);
this.username.reset();
this.errorMsg.set(null);
}
startConversation() {
const name = this.username.value?.trim();
if (!name || this.isLoading()) return;
this.isLoading.set(true);
this.errorMsg.set(null);
this.discussionService.createPrivateDiscussion(name).subscribe({
next: (discussion) => {
this.isLoading.set(false);
this.closeNav();
this.router.navigate(['/main/messages', discussion.id]);
},
error: (err) => {
this.isLoading.set(false);
this.errorMsg.set(
err.status === 404 ? 'Utilisateur introuvable.' : 'Une erreur est survenue.'
);
}
});
}
}