import { Head, Link, useForm } from '@inertiajs/react'; import { useEffect } from 'react'; import { FormErrors, controlClass } from '@/components/procurement'; import { Button } from '@/components/ui/button'; export default function Access({ companyId, purpose, accessStatus, emailDeliveryAvailable, }: { companyId: number; purpose: string; accessStatus: string | null; emailDeliveryAvailable: boolean; }) { const recovery = useForm({ email: '' }); const confirmation = useForm({ token: '', password: '', password_confirmation: '', }); const { setData } = confirmation; useEffect(() => { const token = new URLSearchParams(window.location.hash.slice(1)).get( 'token', ); if (token) setData('token', token); }, [setData]); const verify = purpose === 'confirmar-email'; return ( <>

{verify ? 'Confirmar email' : 'Recuperar acesso'}

Entrada de candidatos {accessStatus === 'completed' ? (

{verify ? 'Email confirmado. Esta confirmação não verifica a identidade nem constitui candidatura.' : 'Palavra-passe actualizada. Entre novamente; as sessões anteriores perderam o acesso.'}

) : ( <> {accessStatus === 'requested' && (

Se existir uma conta e o envio estiver disponível, receberá uma ligação temporária no email indicado.

)} {!emailDeliveryAvailable && (

O envio de email ainda não está configurado. O perfil e a entrada com a palavra-passe actual continuam disponíveis.

)} {confirmation.data.token ? (
{ e.preventDefault(); confirmation.post( `/candidaturas/${companyId}/${purpose}`, { preserveState: false, onFinish: () => confirmation.reset( 'password', 'password_confirmation', ), }, ); }} > {!verify && ( <> )} ) : !verify ? (
{ e.preventDefault(); recovery.post( `/candidaturas/${companyId}/pedir-recuperacao`, ); }} > ) : (

Abra a ligação recebida no seu email. Pode pedir outra na sua área de perfil.

)} )}
); }