Added few functions to the platform
This commit is contained in:
@@ -4,6 +4,7 @@ import { useState, useEffect, useCallback, memo } from 'react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { useNotification } from './NotificationProvider';
|
||||
import { AVAILABLE_PAGES } from '@/lib/pages';
|
||||
import ConfirmModal from './ConfirmModal';
|
||||
|
||||
interface AdherentOption {
|
||||
id: string;
|
||||
@@ -185,6 +186,18 @@ export default function ConfigurationContent() {
|
||||
facturation: '',
|
||||
forfait: '',
|
||||
});
|
||||
const [confirmDeleteOptionModal, setConfirmDeleteOptionModal] = useState<{
|
||||
show: boolean;
|
||||
id: string | null;
|
||||
} | null>(null);
|
||||
const [confirmDeleteUserModal, setConfirmDeleteUserModal] = useState<{
|
||||
show: boolean;
|
||||
userId: string | null;
|
||||
} | null>(null);
|
||||
const [confirmDeleteRoleModal, setConfirmDeleteRoleModal] = useState<{
|
||||
show: boolean;
|
||||
roleId: string | null;
|
||||
} | null>(null);
|
||||
|
||||
const fetchOptions = useCallback(async () => {
|
||||
setLoading(true);
|
||||
@@ -286,13 +299,20 @@ export default function ConfigurationContent() {
|
||||
setEditingValue('');
|
||||
}, []);
|
||||
|
||||
const handleDelete = useCallback(async (id: string) => {
|
||||
if (!confirm('Êtes-vous sûr de vouloir supprimer cette option ?')) {
|
||||
return;
|
||||
}
|
||||
const handleDelete = useCallback((id: string) => {
|
||||
setConfirmDeleteOptionModal({
|
||||
show: true,
|
||||
id,
|
||||
});
|
||||
}, []);
|
||||
|
||||
const confirmDeleteOption = useCallback(async () => {
|
||||
if (!confirmDeleteOptionModal?.id) return;
|
||||
|
||||
const idToDelete = confirmDeleteOptionModal.id;
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/settings/adherent-options/${id}`, {
|
||||
const response = await fetch(`/api/settings/adherent-options/${idToDelete}`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
|
||||
@@ -306,8 +326,10 @@ export default function ConfigurationContent() {
|
||||
} catch (error) {
|
||||
console.error('Erreur:', error);
|
||||
showNotification('Erreur lors de la suppression', 'error');
|
||||
} finally {
|
||||
setConfirmDeleteOptionModal(null);
|
||||
}
|
||||
}, [showNotification, fetchOptions]);
|
||||
}, [confirmDeleteOptionModal, fetchOptions, showNotification]);
|
||||
|
||||
const handleNewValueChange = useCallback((type: 'situation' | 'prescripteur' | 'facturation' | 'forfait', value: string) => {
|
||||
setNewValue((prev) => ({ ...prev, [type]: value }));
|
||||
@@ -375,13 +397,18 @@ export default function ConfigurationContent() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeleteUser = async (userId: string) => {
|
||||
if (!confirm('Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible.')) {
|
||||
return;
|
||||
}
|
||||
const handleDeleteUser = (userId: string) => {
|
||||
setConfirmDeleteUserModal({
|
||||
show: true,
|
||||
userId,
|
||||
});
|
||||
};
|
||||
|
||||
const confirmDeleteUser = async () => {
|
||||
if (!confirmDeleteUserModal?.userId) return;
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/users/${userId}`, {
|
||||
const response = await fetch(`/api/users/${confirmDeleteUserModal.userId}`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
|
||||
@@ -599,6 +626,20 @@ export default function ConfigurationContent() {
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Modal de confirmation de suppression utilisateur */}
|
||||
{confirmDeleteUserModal && (
|
||||
<ConfirmModal
|
||||
isOpen={confirmDeleteUserModal.show}
|
||||
title="Supprimer l'utilisateur"
|
||||
message="Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible."
|
||||
confirmText="Supprimer"
|
||||
cancelText="Annuler"
|
||||
confirmColor="danger"
|
||||
onConfirm={confirmDeleteUser}
|
||||
onCancel={() => setConfirmDeleteUserModal(null)}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
@@ -800,13 +841,18 @@ export default function ConfigurationContent() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeleteRole = async (roleId: string) => {
|
||||
if (!confirm('Êtes-vous sûr de vouloir supprimer ce rôle ?')) {
|
||||
return;
|
||||
}
|
||||
const handleDeleteRole = (roleId: string) => {
|
||||
setConfirmDeleteRoleModal({
|
||||
show: true,
|
||||
roleId,
|
||||
});
|
||||
};
|
||||
|
||||
const confirmDeleteRole = async () => {
|
||||
if (!confirmDeleteRoleModal?.roleId) return;
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/roles/${roleId}`, {
|
||||
const response = await fetch(`/api/roles/${confirmDeleteRoleModal.roleId}`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
|
||||
@@ -820,6 +866,8 @@ export default function ConfigurationContent() {
|
||||
} catch (error) {
|
||||
console.error('Erreur:', error);
|
||||
showNotification('Erreur lors de la suppression', 'error');
|
||||
} finally {
|
||||
setConfirmDeleteRoleModal(null);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1023,6 +1071,19 @@ export default function ConfigurationContent() {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Modal de confirmation de suppression rôle */}
|
||||
{confirmDeleteRoleModal && (
|
||||
<ConfirmModal
|
||||
isOpen={confirmDeleteRoleModal.show}
|
||||
title="Supprimer le rôle"
|
||||
message="Êtes-vous sûr de vouloir supprimer ce rôle ?"
|
||||
confirmText="Supprimer"
|
||||
cancelText="Annuler"
|
||||
confirmColor="danger"
|
||||
onConfirm={confirmDeleteRole}
|
||||
onCancel={() => setConfirmDeleteRoleModal(null)}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
@@ -1216,6 +1277,46 @@ export default function ConfigurationContent() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Modales de confirmation */}
|
||||
{confirmDeleteOptionModal && (
|
||||
<ConfirmModal
|
||||
isOpen={confirmDeleteOptionModal.show}
|
||||
title="Supprimer l'option"
|
||||
message="Êtes-vous sûr de vouloir supprimer cette option ?"
|
||||
confirmText="Supprimer"
|
||||
cancelText="Annuler"
|
||||
confirmColor="danger"
|
||||
onConfirm={confirmDeleteOption}
|
||||
onCancel={() => setConfirmDeleteOptionModal(null)}
|
||||
/>
|
||||
)}
|
||||
|
||||
{confirmDeleteUserModal && (
|
||||
<ConfirmModal
|
||||
isOpen={confirmDeleteUserModal.show}
|
||||
title="Supprimer l'utilisateur"
|
||||
message="Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible."
|
||||
confirmText="Supprimer"
|
||||
cancelText="Annuler"
|
||||
confirmColor="danger"
|
||||
onConfirm={confirmDeleteUser}
|
||||
onCancel={() => setConfirmDeleteUserModal(null)}
|
||||
/>
|
||||
)}
|
||||
|
||||
{confirmDeleteRoleModal && (
|
||||
<ConfirmModal
|
||||
isOpen={confirmDeleteRoleModal.show}
|
||||
title="Supprimer le rôle"
|
||||
message="Êtes-vous sûr de vouloir supprimer ce rôle ?"
|
||||
confirmText="Supprimer"
|
||||
cancelText="Annuler"
|
||||
confirmColor="danger"
|
||||
onConfirm={confirmDeleteRole}
|
||||
onCancel={() => setConfirmDeleteRoleModal(null)}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user