"use client"; import { createSignal } from "solid-js"; import { authClient } from "../lib/auth-client"; export function AuthForm(props: { mode: "sign-in" | "sign-up" }) { const isSignUp = () => props.mode === "sign-up"; const [pending, setPending] = createSignal(false); const [error, setError] = createSignal(null); async function submit(event: SubmitEvent) { event.preventDefault(); setError(null); setPending(true); const formData = new FormData(event.currentTarget as HTMLFormElement); const email = String(formData.get("email") ?? "").trim(); const password = String(formData.get("password") ?? ""); const name = String(formData.get("name") ?? "").trim(); try { const response = isSignUp() ? await authClient.signUp.email({ email, name, password }) : await authClient.signIn.email({ email, password }); if (response.error) { setError(response.error.message ?? "We could not complete that request."); setPending(false); return; } window.location.assign("/dashboard"); } catch { setError("The authentication service could not be reached. Please try again."); setPending(false); } } return (
{isSignUp() ? "01 / SIGN UP" : "01 / SIGN IN"}

{isSignUp() ? "Create account." : "Welcome back."}

{isSignUp() ? ( ) : null} {error() ? ( ) : null}

{isSignUp() ? "Have an account?" : "Need an account?"}{" "} {isSignUp() ? "Sign in →" : "Sign up →"}

); }