Add auth demo

This commit is contained in:
Aaron Po
2026-03-12 13:31:08 -04:00
parent 95b9d7d52a
commit 60b784e365
37 changed files with 6555 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
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>
);
}