Fix admin cleanup hook order and lint setup

This commit is contained in:
Esdras Renan 2025-10-24 09:21:31 -03:00
parent 37c32149a6
commit c7aaa60d9a
4 changed files with 1886 additions and 31 deletions

View file

@ -2,7 +2,7 @@
import Link from "next/link"
import { useCallback, useEffect, useMemo, useState, useTransition } from "react"
import { IconSearch, IconUserPlus, IconTrash } from "@tabler/icons-react"
import { IconSearch, IconUserPlus, IconTrash, IconAlertTriangle } from "@tabler/icons-react"
import { toast } from "sonner"
@ -273,21 +273,6 @@ export function AdminUsersManager({
return Array.from(unique)
}, [normalizedRoles, viewerIsAdmin])
const buildKeepEmailSet = useCallback(() => {
const keep = new Set<string>()
DEFAULT_KEEP_EMAILS.forEach((email) => keep.add(email.toLowerCase()))
if (viewerEmail) {
keep.add(viewerEmail)
}
cleanupKeepEmails
.split(",")
.map((entry) => entry.trim().toLowerCase())
.filter(Boolean)
.forEach((email) => keep.add(email))
return keep
}, [cleanupKeepEmails, viewerEmail])
const cleanupPreview = useMemo(() => Array.from(buildKeepEmailSet()).join(", "), [buildKeepEmailSet])
// Split users: team (admin/agent) and people (manager/collaborator); exclude machines
const teamUsers = useMemo(
() => users.filter((user) => user.role !== "machine" && ["admin", "agent"].includes(coerceRole(user.role))),
@ -331,6 +316,22 @@ export function AdminUsersManager({
const [cleanupKeepEmails, setCleanupKeepEmails] = useState(DEFAULT_KEEP_EMAILS.join(", "))
const [cleanupPending, setCleanupPending] = useState(false)
const buildKeepEmailSet = useCallback(() => {
const keep = new Set<string>()
DEFAULT_KEEP_EMAILS.forEach((email) => keep.add(email.toLowerCase()))
if (viewerEmail) {
keep.add(viewerEmail)
}
cleanupKeepEmails
.split(",")
.map((entry) => entry.trim().toLowerCase())
.filter(Boolean)
.forEach((email) => keep.add(email))
return keep
}, [cleanupKeepEmails, viewerEmail])
const cleanupPreview = useMemo(() => Array.from(buildKeepEmailSet()).join(", "), [buildKeepEmailSet])
// Máquinas (para listar vínculos por usuário)
type MachinesListItem = {
id: string