ads/chrome: banners on /search and /reading-list; wrap /contributor with site chrome

- /search and /reading-list already had Header + Footer; add a
    single in-content 728x90 banner at the bottom of each main column
    (gated on ADS_728X90.length > 0, hidden on mobile).

  - /contributor was a bare dashboard with sidebar + main, no site
    chrome at all. Wrap it in the standard Header + Footer; drop the
    inner sidebar/main wrapper from min-h-screen to a natural-height
    flex so the dashboard sits below the header instead of competing
    with it for full viewport. Header brings the site-wide 728x90
    leaderboard with it, so contributors see the same ad inventory
    as the public site without a second in-content banner cluttering
    the dashboard panes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ryan Salazar
2026-05-20 05:07:49 +00:00
parent a1d5ecf51d
commit 3bb27e2e0a
3 changed files with 23 additions and 1 deletions

View File

@@ -3,6 +3,8 @@ import Link from "next/link";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
import AppImage from "@/components/ui/AppImage";
import AdImage from "@/components/AdImage";
import { ADS_728X90, shuffle } from "@/lib/ads";
import { searchLegacyArticles } from "@/lib/articles/legacy-source";
export const revalidate = 60;
@@ -93,6 +95,13 @@ export default async function SearchPage({ searchParams }: SearchPageProps) {
);
})}
</div>
{/* In-content 728x90 banner */}
{ADS_728X90.length > 0 && (
<div className="mt-10 hidden md:flex justify-center" aria-label="Advertisement">
<AdImage ad={shuffle(ADS_728X90)[0]} page="search" />
</div>
)}
</main>
<Footer />
</div>