mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-04-05 18:09:04 +00:00
57 lines
2.0 KiB
TypeScript
57 lines
2.0 KiB
TypeScript
import { Link } from 'react-router';
|
|
import { getOptionalAuth } from '../lib/auth.server';
|
|
import type { Route } from './+types/home';
|
|
|
|
export function meta({}: Route.MetaArgs) {
|
|
return [
|
|
{ title: 'The Biergarten App' },
|
|
{ name: 'description', content: 'Welcome to The Biergarten App' },
|
|
];
|
|
}
|
|
|
|
export async function loader({ request }: Route.LoaderArgs) {
|
|
const auth = await getOptionalAuth(request);
|
|
return { username: auth?.username ?? null };
|
|
}
|
|
|
|
export default function Home({ loaderData }: Route.ComponentProps) {
|
|
const { username } = loaderData;
|
|
|
|
return (
|
|
<div className="hero min-h-screen bg-base-200">
|
|
<div className="hero-content text-center">
|
|
<div className="max-w-md space-y-6">
|
|
<h1 className="text-5xl font-bold">🍺 The Biergarten App</h1>
|
|
<p className="text-lg text-base-content/70">Authentication Demo</p>
|
|
|
|
{username ? (
|
|
<>
|
|
<p className="text-base-content/80">
|
|
Welcome back, <span className="font-semibold text-primary">{username}</span>
|
|
!
|
|
</p>
|
|
<div className="flex gap-3 justify-center">
|
|
<Link to="/dashboard" className="btn btn-primary">
|
|
Dashboard
|
|
</Link>
|
|
<Link to="/logout" className="btn btn-ghost">
|
|
Logout
|
|
</Link>
|
|
</div>
|
|
</>
|
|
) : (
|
|
<div className="flex gap-3 justify-center">
|
|
<Link to="/login" className="btn btn-primary">
|
|
Login
|
|
</Link>
|
|
<Link to="/register" className="btn btn-outline">
|
|
Register
|
|
</Link>
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|