/**
* =========================================================================
* PLATEFORME ECO-PANNEAU.FR - VERSION 1.0.0
* Paramètres du compte client - Sous-onglet : Carnet d'adresses (Équipe)
* =========================================================================
*/
const FallbackNull = () => null;
const FallbackButton = ({ children, onClick, className, disabled, title, type = "button" }) => (
{children}
);
const FallbackCardGrid = ({children, className}) => (
{children}
);
const FallbackDataCard = ({children, className, variant}) => (
{children}
);
window.pano_ClientSettingsTeam = ({ data, showToast, refreshData, openLocalDialog, closeCurrentLayer, activeDialog }) => {
const { useState } = React;
const [isSaving, setIsSaving] = useState(false);
const [confirmConfig, setConfirmConfig] = useState(null);
const { UsersIcon, Trash2Icon } = window.pano_getIcons();
const Button = window.pano_Button || FallbackButton;
const ConfirmModal = window.pano_ConfirmModal || FallbackNull;
const CardGrid = window.pano_CardGrid || FallbackCardGrid;
const DataCard = window.pano_DataCard || FallbackDataCard;
const teamHistory = data.team || [];
const handleRemoveGlobalCollaborator = (targetEmail) => {
setConfirmConfig({
title: "Supprimer le contact",
message: "Voulez-vous supprimer définitivement ce contact de votre carnet d'adresses et de votre historique ?",
confirmText: "Supprimer",
cancelText: "Annuler",
isDestructive: true,
onConfirm: async () => {
closeCurrentLayer();
const d = await window.pano_apiFetch('clients/team/remove', {
body: { email: targetEmail },
setLoading: setIsSaving,
successMessage: "Contact supprimé de l'historique."
});
if (d && refreshData) refreshData();
}
});
openLocalDialog('confirm_team');
};
return (
Cet onglet liste l'intégralité des collaborateurs passés ou présents sur tous vos panneaux.
La gestion des accès actifs s'effectue individuellement pour chaque panneau depuis l'onglet "Mes panneaux" (bouton "Collaborateurs").
{UsersIcon && } Carnet d'adresses global
{teamHistory.length} contact(s)
{teamHistory.length === 0 ? (
{UsersIcon &&
}
Aucun collaborateur dans votre historique.
Invitez des collaborateurs depuis la gestion de vos panneaux.
) : (
{teamHistory.sort((a,b) => a.company.localeCompare(b.company)).map((member, i) => (
Société / Contact
{member.company}
{member.name}
Panneaux
{member.active_panels > 0 ? (
{member.active_panels} Actif(s)
) : (
Aucun
)}
E-mail
{member.email}
handleRemoveGlobalCollaborator(member.email)}
disabled={isSaving || member.active_panels > 0}
title={member.active_panels > 0 ? "Impossible de supprimer un contact ayant des accès actifs." : "Supprimer de l'historique"}
className="p-2 shadow-none bg-white hover:bg-red-50"
/>
))}
)}
{activeDialog === 'confirm_team' && confirmConfig && ConfirmModal && (
{
setConfirmConfig(null);
closeCurrentLayer();
}}
zIndex="z-[350]"
/>
)}
);
};
/* EOF ========== [_react/_clients_settings_team.jsx] */