import { createFileRoute } from '@tanstack/react-router' import { useState } from 'react' import { authClient } from '#/lib/auth-client' export const Route = createFileRoute('/demo/better-auth')({ component: BetterAuthDemo, }) function BetterAuthDemo() { const { data: session, isPending } = authClient.useSession() const [isSignUp, setIsSignUp] = useState(false) const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [name, setName] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) if (isPending) { return (
) } if (session?.user) { return (

Better Auth

Welcome back

You're signed in as {session.user.email}

{session.user.image ? ( ) : (
{session.user.name?.charAt(0).toUpperCase() || 'U'}
)}

{session.user.name}

{session.user.email}

Built with{' '} BETTER-AUTH .

) } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError('') setLoading(true) try { if (isSignUp) { const result = await authClient.signUp.email({ email, password, name, }) if (result.error) { setError(result.error.message || 'Sign up failed') } } else { const result = await authClient.signIn.email({ email, 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'}

{isSignUp && (
setName(e.target.value)} className="demo-input" required />
)}
setEmail(e.target.value)} className="demo-input" required />
setPassword(e.target.value)} className="demo-input" required minLength={8} />
{error && (

{error}

)}

Built with{' '} BETTER-AUTH .

) }