monaco-editor-lsp-next/src/app/(auth)/layout.tsx

38 lines
1.2 KiB
TypeScript
Raw Normal View History

import Link from "next/link";
import Image from "next/image";
import { CodeIcon } from "lucide-react";
interface AuthLayoutProps {
children: React.ReactNode;
}
export default async function AuthLayout({
children
}: AuthLayoutProps) {
return (
<div className="grid min-h-svh lg:grid-cols-2">
<div className="flex flex-col gap-4 p-6 md:p-10">
<div className="flex justify-center gap-2 md:justify-start">
<Link href="/" className="flex items-center gap-2 font-medium">
<div className="flex h-6 w-6 items-center justify-center rounded-md bg-primary text-primary-foreground">
<CodeIcon className="size-4" />
</div>
Judge4c
</Link>
</div>
<div className="flex flex-1 items-center justify-center">
<div className="w-full max-w-sm">{children}</div>
</div>
</div>
<div className="relative hidden bg-muted lg:block">
<Image
src="/placeholder.svg"
alt="Image"
fill
className="absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale"
/>
</div>
</div>
);
}