'use client'; import * as React from 'react'; import { useMutation, useQuery } from '@tanstack/react-query'; import { KeyRound } from 'lucide-react'; import { listMasterAdmins } from '@/lib/api/master-admins'; import { apiClient, ApiError } from '@/lib/api/client'; import { useAuth } from '@/lib/auth/auth-context'; import { formatDateTime } from '@/lib/format'; import { toast } from '@/lib/toast'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Skeleton } from '@/components/ui/skeleton'; /** * Não existe endpoint de perfil/senha dedicado para o master admin no * backend (só `GET /auth/master/admins`, somente leitura, e o fluxo * genérico `forgot`/`reset` por e-mail — ver observações da Etapa 15 no * controle de progresso). Nome/e-mail aqui são só exibidos (resolvidos * filtrando a lista completa pelo `sub` do JWT), e a troca de senha * reaproveita `POST /auth/password/forgot`, o mesmo fluxo já usado em * `/esqueci-senha` — não uma troca "senha atual → nova senha" direta na * tela, porque essa rota não existe. */ export default function MasterConfiguracoesPage() { const { user } = useAuth(); const { data: admins, isLoading } = useQuery({ queryKey: ['master', 'admins'], queryFn: listMasterAdmins, }); const me = admins?.find((admin) => admin.id === user?.sub); const resetMutation = useMutation({ mutationFn: () => apiClient.post('/auth/password/forgot', { email: me!.email, usuario_tipo: 'master' }), onSuccess: () => { toast.success('Se o e-mail existir, as instruções de redefinição foram enviadas.'); }, onError: (err) => { toast.error(err instanceof ApiError ? err.message : 'Não foi possível enviar o e-mail.'); }, }); return (
Dados da sua conta de administrador
Não foi possível identificar sua conta.
)}