cropintel / components /auth /AuthShell.tsx
Jaithra Polavarapu
feat: add Firebase auth/farms backend alongside existing frontend
fb030a8
Raw
History Blame Contribute Delete
1.69 kB
import Image from 'next/image'
import Link from 'next/link'
type AuthShellProps = {
title: string
subtitle: string
children: React.ReactNode
footer?: React.ReactNode
}
export default function AuthShell({ title, subtitle, children, footer }: AuthShellProps) {
return (
<main className="min-h-screen px-4 py-8 sm:px-6 lg:px-8">
<div className="mx-auto flex min-h-[calc(100vh-4rem)] max-w-md flex-col justify-center">
<Link href="/" className="mb-8 inline-flex items-center gap-2 self-start">
<span className="flex h-9 w-9 items-center justify-center overflow-hidden rounded-xl bg-leaf">
<Image
src="/brand/wheat-mark-transparent.png"
alt="CropIntel"
width={24}
height={24}
className="h-6 w-auto object-contain"
priority
/>
</span>
<span className="font-display text-xl font-extrabold text-ink">CropIntel</span>
</Link>
<section className="surface rounded-2xl p-5 sm:p-7">
<div className="mb-6">
<h1 className="text-2xl font-extrabold text-primary-900 sm:text-3xl">{title}</h1>
<p className="mt-2 text-sm leading-6 text-field-soil">{subtitle}</p>
</div>
{children}
{footer && <div className="mt-6 text-center text-sm text-field-soil">{footer}</div>}
<div className="mt-4 text-center text-xs leading-5 text-field-soil">
<Link className="font-bold text-primary-800 hover:text-primary-950" href="/privacy">
Privacy Policy
</Link>
</div>
</section>
</div>
</main>
)
}