Added few functions to the platform

This commit is contained in:
2026-02-06 11:34:16 +01:00
parent bb5c3058b1
commit ccff904464
14 changed files with 2770 additions and 74 deletions

View File

@@ -2,6 +2,7 @@
import { useState, useEffect } from 'react';
import useSWR from 'swr';
import AlertModal from './AlertModal';
interface User {
id: string;
@@ -25,6 +26,12 @@ export default function NewConversationModal({
const [conversationType, setConversationType] = useState<'direct' | 'group'>('direct');
const [groupName, setGroupName] = useState('');
const [isCreating, setIsCreating] = useState(false);
const [alertModal, setAlertModal] = useState<{
show: boolean;
type: 'success' | 'error' | 'info' | 'warning';
title: string;
message: string;
} | null>(null);
// Récupérer l'utilisateur actuel
const { data: currentUser } = useSWR<User>('/api/auth/me', fetcher);
@@ -47,12 +54,22 @@ export default function NewConversationModal({
const handleCreate = async () => {
if (selectedUsers.length === 0) {
alert('Veuillez sélectionner au moins un utilisateur');
setAlertModal({
show: true,
type: 'warning',
title: 'Sélection requise',
message: 'Veuillez sélectionner au moins un utilisateur',
});
return;
}
if (conversationType === 'group' && !groupName.trim()) {
alert('Veuillez entrer un nom pour le groupe');
setAlertModal({
show: true,
type: 'warning',
title: 'Nom requis',
message: 'Veuillez entrer un nom pour le groupe',
});
return;
}
@@ -75,11 +92,21 @@ export default function NewConversationModal({
onConversationCreated(conversation.id);
} else {
const error = await response.json();
alert(error.error || 'Erreur lors de la création de la conversation');
setAlertModal({
show: true,
type: 'error',
title: 'Erreur',
message: error.error || 'Erreur lors de la création de la conversation',
});
}
} catch (error) {
console.error('Erreur:', error);
alert('Erreur lors de la création de la conversation');
setAlertModal({
show: true,
type: 'error',
title: 'Erreur',
message: 'Erreur lors de la création de la conversation',
});
} finally {
setIsCreating(false);
}
@@ -234,6 +261,17 @@ export default function NewConversationModal({
</button>
</div>
</div>
{/* Modal d'alerte */}
{alertModal && (
<AlertModal
isOpen={alertModal.show}
type={alertModal.type}
title={alertModal.title}
message={alertModal.message}
onClose={() => setAlertModal(null)}
/>
)}
</div>
);
}