const NS = window.ACRFlowDesignSystem_ba1e9c; const { Icon, IconButton, SearchField, Avatar, Badge, DropdownMenu, NotificationItem, Button } = NS; function Wordmark({ collapsed }) { return (
FlowTix {!collapsed ? ( FlowTix GESTÃO DE DEMANDAS ) : null}
); } function SidebarItem({ item, active, collapsed, onClick }) { const [hover, setHover] = React.useState(false); return ( ); } function AppShell({ screen, onNavigate, user, onSwitchUser, dark, onToggleDark, children, title, breadcrumbs }) { const [collapsed, setCollapsed] = React.useState(false); const [notifOpen, setNotifOpen] = React.useState(false); const [q, setQ] = React.useState(""); const [lidas, setLidas] = React.useState(false); const notifs = window.ACRData.notifications || []; const unread = lidas ? 0 : notifs.filter((n) => n.unread).length; const achados = q.trim().length < 2 ? [] : (window.ACRData.demands || []).filter((d) => { const t = q.trim().toLowerCase(); return String(d.id).toLowerCase().includes(t) || String(d.title).toLowerCase().includes(t) || String(d.context || "").toLowerCase().includes(t) || (d.people || []).some((p) => String(p.name).toLowerCase().includes(t)); }).slice(0, 8); return (
setQ(e.target.value)} onClear={() => setQ("")} width={380} /> {q.trim().length >= 2 ? (
{achados.length === 0 ?
Nenhuma demanda encontrada.
: achados.map((d) => ( ))}
) : null}
} label="Notificações" badge={unread || undefined} active={notifOpen} onClick={() => setNotifOpen((o) => !o)} /> {notifOpen ? (
Notificações
{notifs.length === 0 ?
Nenhuma notificação.
: notifs.map((n, i) => ( { setNotifOpen(false); onNavigate("demandas"); }} /> ))}
) : null}
} label={dark ? "Modo claro" : "Modo escuro"} onClick={onToggleDark} /> {user.name.split(" ")[0]} {user.profile === "supervisor" ? "SUPERVISOR" : "OPERACIONAL"} } items={[ { label: "Configurações", icon: , onSelect: () => onNavigate("config") }, { divider: true }, { label: "Sair", icon: , tone: "danger", onSelect: () => onSwitchUser() }, ]} />
{children}
); } Object.assign(window, { AppShell, Wordmark });