'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' import Link from 'next/link' import { BackButton } from '@/app/components/BackButton' function AccountLoginForm ({ redirect }: { redirect: string | null }) { const [loading, setLoading] = useState(true) const [alreadyLoggedIn, setAlreadyLoggedIn] = useState(false) 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') { document.title = 'Lncvrt Games - Account Login' setAlreadyLoggedIn(true) } setLoading(false) }, [router]) return (
{alreadyLoggedIn ? : }

{loading ? 'Loading...' : `Lncvrt Games ${alreadyLoggedIn ? 'Refresh ' : ''}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 ${ alreadyLoggedIn ? 'refresh ' : '' }login, error: ` + (result.data.message || 'n/a') ) } } catch (e: any) { if (e.response) { alert( `Failed to ${ alreadyLoggedIn ? 'refresh ' : '' }login, error: ` + (e.response.data?.message || JSON.stringify(e.response.data)) ) } else if (e.request) { alert( `Failed to ${ alreadyLoggedIn ? 'refresh ' : '' }login, no response from server.` ) } else { alert( `Failed to ${ alreadyLoggedIn ? 'refresh ' : '' }login, error: ` + e.message ) } } }} > setUsername(e.target.value)} required /> setPassword(e.target.value)} required />
)}
) } export default function AccountLoginPage () { return ( Loading...

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