import { createFileRoute } from '@tanstack/solid-router' import { createSignal, Show } from 'solid-js' import { authClient } from '../lib/auth-client' export const Route = createFileRoute('/demo/better-auth')({ component: BetterAuthDemo, }) function BetterAuthDemo() { const session = authClient.useSession() const [isSignUp, setIsSignUp] = createSignal(false) const [email, setEmail] = createSignal('') const [password, setPassword] = createSignal('') const [name, setName] = createSignal('') const [error, setError] = createSignal('') const [loading, setLoading] = createSignal(false) const handleSubmit = async (e: Event) => { e.preventDefault() setError('') setLoading(true) try { if (isSignUp()) { const result = await authClient.signUp.email({ email: email(), password: password(), name: name(), }) if (result.error) { setError(result.error.message || 'Sign up failed') } } else { const result = await authClient.signIn.email({ email: email(), password: password(), }) if (result.error) { setError(result.error.message || 'Sign in failed') } } } catch (err) { setError('An unexpected error occurred') } finally { setLoading(false) } } return (
} >

Better Auth

{isSignUp() ? 'Create an account' : 'Sign in'}

{isSignUp() ? 'Enter your information to create an account' : 'Enter your email below to login to your account'}

setName(e.currentTarget.value)} class="demo-input" required />
setEmail(e.currentTarget.value)} class="demo-input" required />
setPassword(e.currentTarget.value)} class="demo-input" required minLength={8} />

{error()}

Built with{' '} BETTER-AUTH .

} > {(user) => (

Better Auth

Welcome back

You're signed in as {user().email}

{user().name?.charAt(0).toUpperCase() || 'U'}
} > {(image) => }

{user().name}

{user().email}

Built with{' '} BETTER-AUTH .

)}
) }