const { Card, Button, Icon, Switch, Select, Input, Tabs, Avatar, Badge, DataTable, SectorTag, Checkbox } = window.ACRFlowDesignSystem_ba1e9c;
function SettingsScreen({ dark, onToggleDark, onNavigate, user }) {
const [tab, setTab] = React.useState("aparencia");
const [domains, setDomains] = React.useState(["acrcondominio.com.br", "acrcondo.com"]);
const [novo, setNovo] = React.useState("");
const [googleOn, setGoogleOn] = React.useState(true);
const [localOn, setLocalOn] = React.useState(true);
return (
Configurações
Preferências pessoais, notificações e estrutura da empresa
{tab === "aparencia" ? (
{[["Claro", false], ["Escuro", true]].map(([l, v]) => (
dark !== v && onToggleDark()}
style={{ flex: 1, padding: 12, borderRadius: "var(--radius-md)", cursor: "pointer", textAlign: "left", background: "var(--surface-card)", border: "1px solid " + (dark === v ? "var(--accent-primary)" : "var(--border-default)"), boxShadow: dark === v ? "var(--focus-ring)" : "none" }}>
{l}
))}
) : null}
{tab === "notificacoes" ? (
{["Nova demanda atribuída", "Nova responsabilidade", "Comentário recebido", "Prazo próximo (1 dia antes)", "Demanda atrasada", "Checklist pendente", "Aguardando aprovação", "Demanda devolvida", "Demanda encerrada"].map((l, i) => (
))}
) : null}
{tab === "acesso" ? (
setLocalOn((v) => !v)} label="Conta local (login e senha)" description="Credenciais criadas no cadastro de Equipe." />
setGoogleOn((v) => !v)} label="Entrar com Google" description="Somente contas dos domínios autorizados abaixo e já cadastradas na Equipe." />
{domains.map((d) => (
@{d}
Autorizado
setDomains((s) => s.filter((x) => x !== d))}>Remover
))}
setNovo(e.target.value.replace(/^@/, "").trim().toLowerCase())} />
{ setDomains((s) => [...s, novo]); setNovo(""); }}>Adicionar
Contas fora destes domínios, ou sem cadastro ativo em Equipe, são bloqueadas mesmo com login Google válido.
Mínimo de 8 caracteres, com letra maiúscula, minúscula, número e caractere especial. Troca obrigatória no primeiro acesso quando marcada.
) : null}
{tab === "setores" ? (
} onClick={() => onNavigate && onNavigate("taxonomia")}>Abrir cadastro} padding="0">
},
{ key: "cats", label: "Categorias", render: (r) => r.cats },
{ key: "users", label: "Usuários", width: 100, align: "right" },
{ key: "open", label: "Em aberto", width: 110, align: "right", render: (r) => {r.open} },
]}
rows={window.ACRData.sectorsCfg.map((s) => ({ id: s.id, k: s.id, name: s.name, cats: s.categories.join(", "), users: window.ACRData.team.filter((t) => t.sector === s.id).length, open: window.ACRData.demands.filter((d) => d.sector === s.id).length }))} />
) : null}
{tab === "equipe" ? (
},
{ key: "perfil", label: "Perfil", width: 150, render: (r) => {r.perfil} },
{ key: "carga", label: "Demandas ativas", width: 150, align: "right" },
]}
rows={Object.values(window.ACRData.users).map((u, i) => ({ id: i, name: u.name, role: u.role, perfil: u.profile === "supervisor" ? "Supervisor" : "Operacional", carga: [3, 4, 2, 2][i] }))} />
) : null}
);
}
Object.assign(window, { SettingsScreen });