Files
work-club-manager/frontend/src/app/login/page.tsx

39 lines
1.1 KiB
TypeScript
Raw Normal View History

'use client';
import { useEffect } from 'react';
import { signIn, useSession } from 'next-auth/react';
import { useRouter } from 'next/navigation';
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
export default function LoginPage() {
const { status } = useSession();
const router = useRouter();
// Redirect to dashboard if already authenticated
useEffect(() => {
if (status === 'authenticated') {
router.push('/dashboard');
}
}, [status, router]);
const handleSignIn = () => {
signIn('keycloak', { callbackUrl: '/dashboard' });
};
return (
<div className="flex items-center justify-center min-h-screen bg-gray-50">
<Card className="w-96">
<CardHeader>
<CardTitle className="text-2xl text-center">WorkClub Manager</CardTitle>
</CardHeader>
<CardContent>
<Button onClick={handleSignIn} className="w-full">
Sign in with Keycloak
</Button>
</CardContent>
</Card>
</div>
);
}