From ff1177098a94aacbbdffe673d0a5bc76a7200a93 Mon Sep 17 00:00:00 2001 From: Diego Maia Date: Thu, 26 Mar 2026 16:31:20 -0300 Subject: [PATCH 1/2] Add placeholders for ads --- apps/web/src/components/ad-placeholder.tsx | 25 ++++++++++++++++++++++ apps/web/src/routes/__root.tsx | 15 +++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 apps/web/src/components/ad-placeholder.tsx diff --git a/apps/web/src/components/ad-placeholder.tsx b/apps/web/src/components/ad-placeholder.tsx new file mode 100644 index 0000000..7fabde3 --- /dev/null +++ b/apps/web/src/components/ad-placeholder.tsx @@ -0,0 +1,25 @@ +import { cn } from "@/lib/utils"; + +interface AdPlaceholderProps { + width?: string; + height?: string; + label?: string; + className?: string; +} + +export function AdPlaceholder({ width, height, label = "Ad", className }: AdPlaceholderProps) { + return ( +
+ + Advertisement + + {label} +
+ ); +} diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index aeba0c6..f9af7e5 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -1,6 +1,7 @@ import { trpc } from "@nobet/api-client"; import { Outlet, createRootRoute, useNavigate, useRouterState } from "@tanstack/react-router"; import { useEffect, useMemo, useState } from "react"; +import { AdPlaceholder } from "../components/ad-placeholder"; import { BetSlip } from "../components/betting/bet-slip"; import { BottomNav } from "../components/betting/bottom-nav"; import { SportsSidebar } from "../components/betting/sports-sidebar"; @@ -8,8 +9,7 @@ import { ErrorBoundary } from "../components/error-boundary"; import { Footer, Header } from "../components/layout"; import { Sheet, SheetContent } from "../components/ui/sheet"; import { ActiveSportProvider, useActiveSport } from "../context/active-sport-context"; -import { useAuth } from "../context/auth-context"; -import { AuthProvider } from "../context/auth-context"; +import { AuthProvider, useAuth } from "../context/auth-context"; import { BetSlipProvider, useBetSlip } from "../context/bet-slip-context"; function AppLayout() { @@ -49,6 +49,12 @@ function AppLayout() { />
+ {/* [AD TOWER LEFT] xl only — stays visible while main scrolls */} + + + {/* Desktop sports sidebar */} + + {/* [AD TOWER RIGHT] xl only — stays visible while main scrolls */} +