Proteger el panel con sesión y mostrar empresa real

This commit is contained in:
Carlos Narro
2026-05-30 19:45:07 +02:00
parent 17cd03d3c9
commit 6add2f93ea

View File

@@ -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>