// Components
import { Form, Head } from '@inertiajs/react';
import TextLink from '@/components/text-link';
import { Button } from '@/components/ui/button';
import { Spinner } from '@/components/ui/spinner';
import { logout } from '@/routes';
import { send } from '@/routes/verification';

type Props = {
    status?: string;
    email: string;
};

export default function VerifyEmail({ status, email }: Props) {
    const displayEmail = email.trim() !== '' ? email : '—';

    return (
        <>
            <Head title="Confirmar correo electrónico" />

            <p className="mb-6 text-center text-sm text-muted-foreground">
                Revise el buzón de{' '}
                <span className="break-all font-medium text-foreground">{displayEmail}</span>
            </p>

            {status === 'verification-link-sent' && (
                <div className="mb-4 text-center text-sm font-medium text-green-600 dark:text-green-500">
                    Hemos enviado un nuevo enlace de verificación a tu dirección de correo electrónico.
                </div>
            )}

            <Form {...send.form()} className="space-y-6 text-center">
                {({ processing }) => (
                    <>
                        <Button disabled={processing} variant="secondary">
                            {processing && <Spinner />}
                            Reenviar correo de verificación
                        </Button>

                        <TextLink
                            href={logout()}
                            className="mx-auto block text-sm"
                        >
                            Cerrar sesión
                        </TextLink>
                    </>
                )}
            </Form>
        </>
    );
}

VerifyEmail.layout = {
    title: 'Confirmar correo electrónico',
    description:
        'Aún no tienes acceso a la plataforma. Debes validar tu dirección de correo electrónico para continuar.',
};
