import { useState, useEffect } from 'react' import { createFileRoute, Link } from '@tanstack/react-router' import { resetPassword } from '@/api/auth' interface Branding { name: string | null hasLogo: boolean } export const Route = createFileRoute('/reset-password')({ component: ResetPasswordPage, }) function ResetPasswordPage() { const { token } = Route.useSearch() as { token?: string } const [password, setPassword] = useState('') const [confirmPassword, setConfirmPassword] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) const [success, setSuccess] = useState(false) const [branding, setBranding] = useState(null) useEffect(() => { fetch('/v1/store/branding') .then((r) => r.ok ? r.json() : null) .then((data) => { if (data) setBranding(data) }) .catch(() => {}) }, []) async function handleSubmit(e: React.FormEvent) { e.preventDefault() setError('') if (!token) { setError('Missing reset token. Please use the link from your email.') return } if (password !== confirmPassword) { setError('Passwords do not match') return } if (password.length < 12) { setError('Password must be at least 12 characters') return } setLoading(true) try { await resetPassword(token, password) setSuccess(true) } catch (err) { setError(err instanceof Error ? err.message : 'Reset failed. The link may have expired.') } finally { setLoading(false) } } return (
{branding?.hasLogo ? ( {branding.name ) : (

{branding?.name ?? 'LunarFront'}

)} {branding?.name ? (

Powered by LunarFront

) : (

Small Business Management

)}
{success ? (

Password reset successfully.

Sign in
) : !token ? (

Invalid reset link. Please request a new one.

Back to sign in
) : ( <>

Set new password

setPassword(e.target.value)} required minLength={12} placeholder="At least 12 characters" className="h-9 w-full rounded-md border px-3 py-1 text-sm outline-none login-input" />
setConfirmPassword(e.target.value)} required className="h-9 w-full rounded-md border px-3 py-1 text-sm outline-none login-input" />
{error && (

{error}

)}
Back to sign in
)}
) }