// ECO-PANNEAU.FR - _react/clients/_clients_settings.jsx
// 1. - MODALE : GESTIONNAIRE DE FICHIERS (QUOTA)
const FileManagerModal = ({ onClose, showToast, refreshData }) => {
const { useState, useEffect } = React;
const { isMounted, safeFetch } = window.pano_useSafeFetch();
const [files, setFiles] = useState([]);
const [isLoading, setIsLoading] = useState(true);
const [isDeleting, setIsDeleting] = useState(false);
const { Trash2Icon, FileTextIcon, ShieldIcon, LoaderIcon, AlertTriangleIcon } = window.pano_getIcons();
const { Button, Modal } = window.pano_getComponents();
const fetchFiles = async () => {
setIsLoading(true);
const d = await safeFetch('clients/files/list', { method: 'GET', silent: true });
if (!isMounted.current) return;
if (d && d.status === 'success') {
setFiles(d.data || []);
}
setIsLoading(false);
};
useEffect(() => { fetchFiles(); }, []);
const handleDelete = async (fileId) => {
const d = await safeFetch('clients/files/delete', {
body: { file_id: fileId },
setLoading: setIsDeleting,
successMessage: "Fichier supprimé avec succès. Espace libéré."
});
if (!isMounted.current) return;
if (d) {
await fetchFiles();
if (refreshData) refreshData();
}
};
return (
Retrouvez ici l'ensemble des fichiers stockés sur votre compte. Les documents légaux (ex: Arrêtés, D.O.E) ne peuvent pas être supprimés manuellement pour des raisons de conformité.
{f.name} {new Date(f.created_at).toLocaleDateString('fr-FR')}
Augmentez votre capacité de stockage pour conserver plus de photos, de D.O.E et d'historiques de messagerie. Sans engagement de durée.
Nouveau Total {(newTotalMb / 1024).toFixed(2)} Go Facturation +{newPrice.toFixed(2)} € HT/mo
Vous consommez actuellement {(usedMb / 1024).toFixed(2)} Go. Vous devez d'abord supprimer des fichiers via le gestionnaire pour pouvoir revenir à ce forfait inférieur.
{files.map(f => (
Fichier
Emplacement
Taille
Action
))}
{f.context_label}
{parseFloat(f.size_mb).toFixed(2)} Mo
{f.is_legal ? (
Paramètres, facturation et stockage