feat: Utilisation des nouvelles alertes dans la page admin de la gestion

des documents
This commit is contained in:
N3WT DE COMPET
2025-05-11 18:50:33 +02:00
parent 3c0806e26c
commit 67193a8b36
2 changed files with 27 additions and 40 deletions

View File

@ -47,8 +47,6 @@ export default function FilesGroupsManagement({
const [groupToEdit, setGroupToEdit] = useState(null);
const [reloadTemplates, setReloadTemplates] = useState(false);
const [popupVisible, setPopupVisible] = useState(false);
const [popupMessage, setPopupMessage] = useState('');
const [removePopupVisible, setRemovePopupVisible] = useState(false);
const [removePopupMessage, setRemovePopupMessage] = useState('');
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
@ -144,7 +142,6 @@ export default function FilesGroupsManagement({
'Succès'
);
setPopupVisible(true);
setRemovePopupVisible(false);
setIsLoading(false);
} else {
@ -153,7 +150,6 @@ export default function FilesGroupsManagement({
'error',
'Erreur'
);
setPopupVisible(true);
setRemovePopupVisible(false);
setIsLoading(false);
}
@ -165,7 +161,6 @@ export default function FilesGroupsManagement({
'error',
'Erreur'
);
setPopupVisible(true);
setRemovePopupVisible(false);
setIsLoading(false);
});
@ -175,7 +170,6 @@ export default function FilesGroupsManagement({
'error',
'Erreur'
);
setPopupVisible(true);
setRemovePopupVisible(false);
setIsLoading(false);
}
@ -187,7 +181,6 @@ export default function FilesGroupsManagement({
'error',
'Erreur'
);
setPopupVisible(true);
setRemovePopupVisible(false);
setIsLoading(false);
});
@ -329,14 +322,19 @@ export default function FilesGroupsManagement({
);
if (filesInGroup.length > 0) {
showNotification(
"Impossible de supprimer ce groupe car il contient des schoolFileMasters. Veuillez d'abord retirer tous les schoolFileMasters de ce groupe.",
"Impossible de supprimer ce groupe car il contient déjà des formulaires. Veuillez d'abord retirer tous les formules de ce groupe.",
'error',
'Erreur'
);
return;
}
if (window.confirm('Êtes-vous sûr de vouloir supprimer ce groupe ?')) {
setRemovePopupVisible(true);
setRemovePopupMessage(
`Attentions ! \nÊtes-vous sûr de vouloir supprimer ce groupe ?`
);
setRemovePopupOnConfirm(() => () => {
setIsLoading(true);
deleteRegistrationFileGroup(groupId, csrfToken)
.then((response) => {
if (response.status === 409) {
@ -346,10 +344,14 @@ export default function FilesGroupsManagement({
throw new Error('Erreur lors de la suppression du groupe.');
}
setGroups(groups.filter((group) => group.id !== groupId));
setRemovePopupVisible(false);
setIsLoading(false);
showNotification('Groupe supprimé avec succès.', 'success', 'Succès');
})
.catch((error) => {
console.error('Error deleting group:', error);
setRemovePopupVisible(false);
setIsLoading(false);
showNotification(
error.message ||
"Erreur lors de la suppression du groupe. Vérifiez qu'aucune inscription n'utilise ce groupe.",
@ -357,7 +359,7 @@ export default function FilesGroupsManagement({
'Erreur'
);
});
}
});
};
const handleCreate = (newParentFile) => {
@ -570,14 +572,6 @@ export default function FilesGroupsManagement({
handleEdit={handleEdit}
handleDelete={handleDelete}
/>
<Popup
visible={popupVisible}
message={popupMessage}
onConfirm={() => setPopupVisible(false)}
onCancel={() => setPopupVisible(false)}
uniqueConfirmButton={true}
/>
<Popup
visible={removePopupVisible}
message={removePopupMessage}

View File

@ -9,6 +9,7 @@ import { createRegistrationParentFileTemplate } from '@/app/actions/registerFile
import { useCsrfToken } from '@/context/CsrfContext';
import SectionHeader from '@/components/SectionHeader';
import ToggleSwitch from '@/components/ToggleSwitch';
import { useNotification } from '@/context/NotificationContext';
export default function ParentFilesSection({
parentFiles,
@ -23,13 +24,12 @@ export default function ParentFilesSection({
const [guardianDetails, setGuardianDetails] = useState([]);
const [popupVisible, setPopupVisible] = useState(false);
const [popupMessage, setPopupMessage] = useState('');
const [removePopupVisible, setRemovePopupVisible] = useState(false);
const [removePopupMessage, setRemovePopupMessage] = useState('');
const [removePopupOnConfirm, setRemovePopupOnConfirm] = useState(() => {});
const csrfToken = useCsrfToken();
const { showNotification } = useNotification();
const handleAddEmptyRequiredDocument = () => {
setEditingDocumentId('new');
@ -48,17 +48,19 @@ export default function ParentFilesSection({
const handleSaveDocument = () => {
if (!formData.name) {
setPopupMessage(
"Attention !\nVeuillez saisir un nom de document pour valider l'opération."
showNotification(
'Veuillez saisir un nom de document pour valider l\'opération',
'error',
'Erreur'
);
setPopupVisible(true);
return;
}
if (selectedGroups.length === 0) {
setPopupMessage(
"Attention !\nVeuillez sélectionner au moins un dossier d'inscription pour valider l'opération"
showNotification(
'Veuillez sélectionner au moins un dossier d\'inscription pour valider l\'opération',
'error',
'Erreur'
);
setPopupVisible(true);
return;
}
@ -265,10 +267,7 @@ export default function ParentFilesSection({
setRemovePopupOnConfirm(() => () => {
handleRemoveDocument(document.id)
.then(() => {
setPopupMessage(
`Le document "${document.name}" a été correctement supprimé.`
);
setPopupVisible(true);
showNotification('Le document "${document.name}" a été correctement supprimé.', 'success', 'Succès');
setRemovePopupVisible(false);
})
.catch((error) => {
@ -276,10 +275,11 @@ export default function ParentFilesSection({
'Erreur lors de la suppression du document:',
error
);
setPopupMessage(
`Erreur lors de la suppression du document "${document.name}".`
showNotification(
`Erreur lors de la suppression du document "${document.name}".`,
'error',
'Erreur'
);
setPopupVisible(true);
setRemovePopupVisible(false);
});
});
@ -335,13 +335,6 @@ export default function ParentFilesSection({
}
columns={columnsRequiredDocuments}
/>
<Popup
visible={popupVisible}
message={popupMessage}
onConfirm={() => setPopupVisible(false)}
onCancel={() => setPopupVisible(false)}
uniqueConfirmButton={true}
/>
<Popup
visible={removePopupVisible}
message={removePopupMessage}