From 7565a7bf4615b36ea18c2e60dbccf932594e0453 Mon Sep 17 00:00:00 2001 From: Carlos Narro Date: Sat, 30 May 2026 19:58:58 +0200 Subject: [PATCH] =?UTF-8?q?Mostrar=20badge=20de=20plan=20y=20bot=C3=B3n=20?= =?UTF-8?q?de=20pago=20deshabilitado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mvp/b2c/src/app/panel/page.tsx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mvp/b2c/src/app/panel/page.tsx b/mvp/b2c/src/app/panel/page.tsx index 16efe43..70e88a9 100644 --- a/mvp/b2c/src/app/panel/page.tsx +++ b/mvp/b2c/src/app/panel/page.tsx @@ -9,6 +9,12 @@ import { formatEuros, formatFecha, } from '@/lib/funnel'; +import { getCurrentTenantId } from '@/lib/auth/current-user'; +import { db } from '@/db'; +import { tenants, plans } from '@/db/schema'; +import { eq } from 'drizzle-orm'; +import { formatPlanBadge } from '@/lib/billing/plan'; +import { STRIPE_ENABLED } from '@/lib/billing/stripe'; export const dynamic = 'force-dynamic'; @@ -27,6 +33,13 @@ export default async function PanelPage({ const [leads, resumen] = await Promise.all([getLeads(filtro), getResumen()]); + const tenantId = await getCurrentTenantId(); + const [tenant] = await db.select().from(tenants).where(eq(tenants.id, tenantId)).limit(1); + const [plan] = tenant?.planId + ? await db.select().from(plans).where(eq(plans.id, tenant.planId)).limit(1) + : []; + const badge = formatPlanBadge(plan?.nombre ?? null, tenant?.subscriptionStatus ?? 'trial', tenant?.trialEndsAt ?? null); + return (
@@ -36,6 +49,18 @@ export default async function PanelPage({

+
+ {badge} + +
+ {/* Filtros por estado */}
{FILTROS.map((f) => {