an app to share curated trails
sidetrail.app
atproto
nextjs
react
rsc
1import Link from "next/link";
2import { LoginForm } from "./LoginForm";
3import "./login.css";
4
5export default async function LoginPage({
6 searchParams,
7}: {
8 searchParams: Promise<{ error?: string; returnUrl?: string }>;
9}) {
10 const params = await searchParams;
11 const error = params.error
12 const returnUrl = params.returnUrl && params.returnUrl.startsWith('/') ? params.returnUrl : '/';
13
14 return (
15 <div className="LoginPage">
16 <div className="LoginPage-card">
17 <h1 className="LoginPage-title">
18 <Link href="/">sidetrail</Link>
19 </h1>
20 <p className="LoginPage-subtitle">trails worth walking</p>
21
22 {error && <p className="LoginPage-error">{error}</p>}
23
24 <LoginForm returnUrl={returnUrl} />
25 </div>
26 </div>
27 );
28}