Proteger el panel con sesión y mostrar empresa real
This commit is contained in:
@@ -1,12 +1,22 @@
|
|||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import type { Metadata } from 'next';
|
import type { Metadata } from 'next';
|
||||||
|
import { requireUser } from '@/lib/auth/current-user';
|
||||||
|
import { db } from '@/db';
|
||||||
|
import { tenants } from '@/db/schema';
|
||||||
|
import { eq } from 'drizzle-orm';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Panel · Reformas Ejemplo',
|
title: 'Panel · Reformix',
|
||||||
description: 'Panel de leads del reformista',
|
description: 'Panel de leads del reformista',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function PanelLayout({ children }: { children: React.ReactNode }) {
|
export default async function PanelLayout({ children }: { children: React.ReactNode }) {
|
||||||
|
const user = await requireUser();
|
||||||
|
const [tenant] = user.tenantId
|
||||||
|
? await db.select().from(tenants).where(eq(tenants.id, user.tenantId)).limit(1)
|
||||||
|
: [];
|
||||||
|
const nombreEmpresa = tenant?.nombreEmpresa ?? 'Reformix';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-gray-50">
|
<div className="min-h-screen bg-gray-50">
|
||||||
<header className="sticky top-0 z-10 bg-white border-b border-gray-200">
|
<header className="sticky top-0 z-10 bg-white border-b border-gray-200">
|
||||||
@@ -17,15 +27,14 @@ export default function PanelLayout({ children }: { children: React.ReactNode })
|
|||||||
</span>
|
</span>
|
||||||
<span className="font-extrabold tracking-tight text-black">Reformix</span>
|
<span className="font-extrabold tracking-tight text-black">Reformix</span>
|
||||||
<span className="text-gray-300">/</span>
|
<span className="text-gray-300">/</span>
|
||||||
<span className="text-sm font-medium text-gray-600">Reformas Ejemplo</span>
|
<span className="text-sm font-medium text-gray-600">{nombreEmpresa}</span>
|
||||||
</Link>
|
</Link>
|
||||||
<nav className="flex items-center gap-4 text-xs font-medium">
|
<nav className="flex items-center gap-4 text-xs font-medium">
|
||||||
<Link href="/panel" className="text-gray-500 hover:text-black">
|
<Link href="/panel" className="text-gray-500 hover:text-black">Leads</Link>
|
||||||
Leads
|
<Link href="/panel/precios" className="text-gray-500 hover:text-black">Precios</Link>
|
||||||
</Link>
|
<form action="/logout" method="post">
|
||||||
<Link href="/panel/precios" className="text-gray-500 hover:text-black">
|
<button type="submit" className="text-gray-500 hover:text-black">Salir</button>
|
||||||
Precios
|
</form>
|
||||||
</Link>
|
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
Reference in New Issue
Block a user