"use client"; import { FormEvent, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { supabaseBrowser } from "@/lib/supabase/browser"; export default function SignupPage() { const router = useRouter(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const onSubmit = async (event: FormEvent) => { event.preventDefault(); setError(null); setLoading(true); const client = supabaseBrowser(); if (!client) { setLoading(false); setError("Supabase is not configured. Add NEXT_PUBLIC_SUPABASE_* to .env.local."); return; } const { error: signUpError } = await client.auth.signUp({ email, password }); setLoading(false); if (signUpError) { setError(signUpError.message); return; } router.push("/courses"); }; return (

Sign up

Create your account to unlock course player and practice.

{error ?

{error}

: null}

Already have an account?{" "} Login

Are you a teacher?{" "} Login here

Teacher accounts are invite-only. If you received an invite, use the email provided.

); }