import { Head, useForm } from '@inertiajs/react';
import { Users } from 'lucide-react';
import StudentLayout from '@/layouts/StudentLayout';

export default function Join() {
    const { data, setData, post, processing, errors } = useForm({ pin: '' });

    return (
        <>
            <Head title="Gabung Team Quest" />
            <div className="mx-auto flex min-h-[65vh] max-w-md items-center">
                <form
                    onSubmit={(event) => {
                        event.preventDefault();
                        post(route('team-quest.join'));
                    }}
                    className="glass w-full space-y-6 rounded-3xl border border-emerald-500/20 p-7 text-center"
                >
                    <div className="mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-emerald-500/15 text-emerald-300"><Users className="h-8 w-8" /></div>
                    <div>
                        <h1 className="text-2xl font-black">Gabung Team Quest</h1>
                        <p className="mt-2 text-sm text-text-muted">Masukkan PIN dari layar guru. Sistem otomatis menemukan kelompokmu.</p>
                    </div>
                    <input
                        value={data.pin}
                        onChange={(event) => setData('pin', event.target.value.replace(/\D/g, '').slice(0, 6))}
                        inputMode="numeric"
                        autoFocus
                        placeholder="000000"
                        className="w-full rounded-2xl border border-border/50 bg-surface px-4 py-4 text-center font-mono text-3xl font-black tracking-[0.35em]"
                    />
                    {errors.pin && <p className="text-sm text-rose-400">{errors.pin}</p>}
                    <button disabled={processing || data.pin.length !== 6} className="w-full rounded-xl bg-emerald-500 px-5 py-3 font-bold text-white disabled:opacity-50">
                        {processing ? 'Menghubungkan...' : 'Gabung Kelompok'}
                    </button>
                </form>
            </div>
        </>
    );
}

Join.layout = (page: React.ReactNode) => <>{page}</>;

Join.layout = (page: any) => <StudentLayout title="Team Quest">{page}</StudentLayout>;
