diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 90e9971..8578791 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -1,7 +1,8 @@ 'use client'; -import { loginAction, LoginResult } from '@/lib/actions/auth'; -import { useActionState } from 'react'; +import { loginAction, LoginResult, clearExpiredSessionAction } from '@/lib/actions/auth'; +import { useActionState, useEffect } from 'react'; +import { useSearchParams } from 'next/navigation'; const initialState: LoginResult = { message: '', @@ -9,7 +10,15 @@ const initialState: LoginResult = { }; export default function LoginPage() { + const searchParams = useSearchParams(); + const expired = searchParams.get('expired') === 'true'; const [state, formAction] = useActionState(loginAction, initialState); + + useEffect(() => { + if (expired) { + clearExpiredSessionAction(); + } + }, [expired]); return (
@@ -17,6 +26,11 @@ export default function LoginPage() {

ACC Server Manager

Sign in to manage your servers

+ {expired && ( +
+ Your session has expired. Please sign in again. +
+ )} {state?.success ? null : (
{state?.message} diff --git a/src/components/ui/LogoutButton.tsx b/src/components/ui/LogoutButton.tsx index ba57d5a..3a3b526 100644 --- a/src/components/ui/LogoutButton.tsx +++ b/src/components/ui/LogoutButton.tsx @@ -4,7 +4,7 @@ import { logoutAction } from '@/lib/actions/auth'; import { useActionState } from 'react'; export default function LogoutButton() { - const [_, formAction] = useActionState(logoutAction, null); + const [, formAction] = useActionState(logoutAction, null); return (