'use client' import { useRouter, useSearchParams } from 'next/navigation' import { getCookie, setCookie } from '@/util/cookie' import { Suspense, useEffect, useState } from 'react' import { HomeButton } from '@/app/components/HomeButton' import { DiscordButton } from '@/app/components/DiscordButton' import axios from 'axios' function LoginForm ({ redirect }: { redirect: string | null }) { const [loading, setLoading] = useState(true) const router = useRouter() const [username, setUsername] = useState('') const [password, setPassword] = useState('') useEffect(() => { document.title = 'Lncvrt Games - Account Login' const token = getCookie('accountToken', '-1') if (token !== '-1') { router.push('/account') } else setLoading(false) }, [router]) return (

{loading ? 'Loading...' : 'Lncvrt Games Login'}

{!loading && (
{ e.preventDefault() try { const result = await axios.post('/api/account/login', { username, password }) if (result.data.success) { if (result.data.data.session) setCookie('accountToken', result.data.data.session) if (result.data.data.username) setCookie('accountUsername', result.data.data.username) if (result.data.data.id) setCookie('accountId', result.data.data.id) router.push(redirect ?? '/account') } else { alert( 'Failed to login, error: ' + (result.data.message || 'n/a') ) } } catch (e: any) { if (e.response) { alert( 'Failed to login, error: ' + (e.response.data?.message || JSON.stringify(e.response.data)) ) } else if (e.request) { alert('Failed to login, no response from server.') } else { alert('Failed to login, error: ' + e.message) } } }} > setUsername(e.target.value)} required /> setPassword(e.target.value)} required />
)}
) } export default function LoginPage () { return ( Loading...

} >
) } function LoginPageWithParams () { const params = useSearchParams() const redirect = params.get('redirect') return }