From ae7cb74ba04bec994f6ed67edb2d548e6bd56cca Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 20:06:44 +0000 Subject: [PATCH] Add confirmation modal for agent deactivation Implement a confirmation modal that appears when the "Desativar" button is clicked. This modal asks the user to confirm the action and informs them that the deactivation will be logged. The "Ativar" action remains a direct toggle. --- src/pages/AgentDetails.tsx | 47 +++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/src/pages/AgentDetails.tsx b/src/pages/AgentDetails.tsx index cf48f3c..9daa8f9 100644 --- a/src/pages/AgentDetails.tsx +++ b/src/pages/AgentDetails.tsx @@ -9,6 +9,16 @@ import { ArrowLeft, Save, History, Power } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; import { VersionHistoryDialog } from "@/components/agents/VersionHistoryDialog"; import { SaveVersionDialog } from "@/components/agents/SaveVersionDialog"; +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, +} from "@/components/ui/alert-dialog"; export default function AgentDetails() { const { id } = useParams(); @@ -16,6 +26,7 @@ export default function AgentDetails() { const { toast } = useToast(); const [isHistoryOpen, setIsHistoryOpen] = useState(false); const [isSaveVersionOpen, setIsSaveVersionOpen] = useState(false); + const [isDeactivateDialogOpen, setIsDeactivateDialogOpen] = useState(false); // Mock data - substituir por dados reais do backend const [agent, setAgent] = useState<{ @@ -84,12 +95,25 @@ export default function AgentDetails() { }; const handleToggleStatus = () => { - const newStatus = agent.status === "active" ? "inactive" : "active"; - setAgent({ ...agent, status: newStatus }); + if (agent.status === "active") { + setIsDeactivateDialogOpen(true); + } else { + // Ativar diretamente sem modal + setAgent({ ...agent, status: "active" }); + toast({ + title: "Status atualizado", + description: "Agente ativado com sucesso.", + }); + } + }; + + const handleConfirmDeactivate = () => { + setAgent({ ...agent, status: "inactive" }); toast({ title: "Status atualizado", - description: `Agente ${newStatus === "active" ? "ativado" : "desativado"} com sucesso.`, + description: "Agente desativado com sucesso. Esta ação foi registrada.", }); + setIsDeactivateDialogOpen(false); }; return ( @@ -205,6 +229,23 @@ export default function AgentDetails() { onOpenChange={setIsSaveVersionOpen} onSave={handleSave} /> + + + + + Tem certeza que deseja desativar este agente? + + Esta ação ficará registrada no sistema. O agente não poderá ser utilizado até ser reativado. + + + + Cancelar + + Desativar + + + + ); }