"use client"; import { useState } from "react"; import { createBrowserClient } from "@supabase/ssr"; import { Mail } from "lucide-react"; export function SignIn() { const [email, setEmail] = useState(""), [message, setMessage] = useState(""), [error, setError] = useState(""), [busy, setBusy] = useState(false); async function submit(event: React.FormEvent) { event.preventDefault(); setBusy(true); setError(""); try { const client = createBrowserClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY!, ); const { error } = await client.auth.signInWithOtp({ email, options: { emailRedirectTo: window.location.origin + "/auth/callback" }, }); if (error) throw error; setMessage( "Check your inbox for a sign-in link. You can return here after opening it.", ); } catch (e) { setError((e as Error).message); } finally { setBusy(false); } } return (
YOUR CARTOGRAPHER ACCOUNT

Welcome, explorer.

Sign in to share maps and keep your expeditions. No password needed.

{message && (

{message}

)} {error && (

{error}

)}
); }