feat: allow company deletion by detaching dependents
This commit is contained in:
parent
2980885bf8
commit
7951bc25a3
3 changed files with 32 additions and 21 deletions
|
|
@ -184,11 +184,25 @@ export function AdminCompaniesManager({ initialCompanies }: { initialCompanies:
|
|||
method: "DELETE",
|
||||
credentials: "include",
|
||||
})
|
||||
if (!response.ok) {
|
||||
const data = await response.json().catch(() => ({}))
|
||||
throw new Error(data.error ?? "Falha ao excluir empresa")
|
||||
const data = (await response.json().catch(() => ({}))) as {
|
||||
error?: string
|
||||
detachedUsers?: number
|
||||
detachedTickets?: number
|
||||
}
|
||||
toast.success("Empresa removida")
|
||||
if (!response.ok) {
|
||||
throw new Error(data?.error ?? "Falha ao excluir empresa")
|
||||
}
|
||||
const detachedUsers = data?.detachedUsers ?? 0
|
||||
const detachedTickets = data?.detachedTickets ?? 0
|
||||
const details: string[] = []
|
||||
if (detachedUsers > 0) {
|
||||
details.push(`${detachedUsers} usuário${detachedUsers > 1 ? "s" : ""} desvinculado${detachedUsers > 1 ? "s" : ""}`)
|
||||
}
|
||||
if (detachedTickets > 0) {
|
||||
details.push(`${detachedTickets} ticket${detachedTickets > 1 ? "s" : ""} atualizado${detachedTickets > 1 ? "s" : ""}`)
|
||||
}
|
||||
const successMessage = details.length > 0 ? `Empresa removida (${details.join(", ")})` : "Empresa removida"
|
||||
toast.success(successMessage)
|
||||
if (editingId === deleteId) {
|
||||
resetForm()
|
||||
setEditingId(null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue