import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { DriverRegistrationForm } from '../components/DriverForm/DriverRegistrationForm';
import { Button } from '@/components/ui/button';
import { ChevronLeft } from 'lucide-react';
import { toast } from 'sonner';
import { getTokenForModule } from '@/utils/tokenManager';

export const InternalDriverRegistrationView = () => {
  const navigate = useNavigate();
  const [isAuthorized, setIsAuthorized] = useState(false);

  useEffect(() => {
    const checkAuth = async () => {
      // SEGURANÇA: Exige token específico do módulo GR. 
      // Não aceita fallback para o token global x-access-token.
      const token = await getTokenForModule('gr');
      
      if (!token) {
        toast.error("Sessão expirada ou acesso negado. Login no módulo GR é obrigatório.");
        navigate('/plataforma/gr/login');
      } else {
        setIsAuthorized(true);
      }
    };
    
    checkAuth();
  }, [navigate]);
  
  if (!isAuthorized) {
    return null; // Ou um componente de loading
  }

  return (
    <div className="space-y-6">
       <div className="flex items-center gap-4">
             <Button variant="outline" size="icon" onClick={() => navigate(-1)} className="h-9 w-9">
                 <ChevronLeft size={16} />
             </Button>
             <div>
                 <h1 className="text-xl font-bold text-slate-900 dark:text-slate-100">
                    {sessionStorage.getItem('info') ? "Atualização de Cadastro" : "Novo Cadastro"}
                 </h1>
                 <p className="text-xs text-slate-500">
                    {sessionStorage.getItem('info') ? "Complete os dados para atualizar o registro." : "Inicie um processo de cadastro manualmente."}
                 </p>
             </div>
       </div>
       
       <div className="bg-white dark:bg-[#151515] rounded-xl border border-slate-200 dark:border-[#333] p-8">
            <DriverRegistrationForm isInternal onSuccess={() => navigate('/plataforma/gr/cadastros')} />
       </div>
    </div>
  );
};
