From df05b21dff390f6054a27a187aa9823986f20791 Mon Sep 17 00:00:00 2001 From: Luiz Gustavo Date: Fri, 29 May 2026 01:41:30 -0300 Subject: [PATCH] ux(nav): SiteHeader on every sub-page; BureauNav back to pure breadcrumb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two related navbar issues from the audit: - Sub-pages on desktop only had the breadcrumb pills — readers on a case file couldn't get to /sightings or /witnesses without going home first. - Entity-list pages (/sightings, /witnesses, …) stacked SiteHeader AND BureauNav and BOTH carried a locale toggle + auth pill, surfacing every control twice. This pass unifies the chrome: - BureauNav slimmed: only the ← home pill, the section pill, and the breadcrumb trail. Locale toggle, auth pill and mobile hamburger removed — SiteHeader owns those. - SiteHeader added above BureauNav on /bureau, /c/[slug], /h/[id], and /jobs/[id]. The four pages that previously skipped it now have the full global nav on desktop and a single hamburger on mobile. - Entity-list pages (which already stacked the two) lose their duplicate controls; verified live: 1 toggle + 1 sign-in on /sightings, /bureau, /c/d44; 1 hamburger on mobile case files. No regressions on /documents or the home (both already followed the SiteHeader-only or stacked-correctly pattern). Co-Authored-By: Claude Opus 4.7 (1M context) --- web/app/bureau/page.tsx | 2 ++ web/app/c/[slug]/page.tsx | 2 ++ web/app/h/[hypothesisId]/page.tsx | 2 ++ web/app/jobs/[id]/page.tsx | 2 ++ web/components/bureau-nav.tsx | 43 ++++++------------------------- 5 files changed, 16 insertions(+), 35 deletions(-) diff --git a/web/app/bureau/page.tsx b/web/app/bureau/page.tsx index cd6f934..8be3cb9 100644 --- a/web/app/bureau/page.tsx +++ b/web/app/bureau/page.tsx @@ -7,6 +7,7 @@ */ import { BureauNav } from "@/components/bureau-nav"; import { CaseLibraryBrowser } from "@/components/case-library-browser"; +import { SiteHeader } from "@/components/site-header"; import { getLocale } from "@/components/locale-toggle"; import { loadCases } from "@/lib/cases"; @@ -19,6 +20,7 @@ export default async function BureauPage() { return (
+
diff --git a/web/app/c/[slug]/page.tsx b/web/app/c/[slug]/page.tsx index 35d9143..3ee9b3e 100644 --- a/web/app/c/[slug]/page.tsx +++ b/web/app/c/[slug]/page.tsx @@ -11,6 +11,7 @@ import path from "node:path"; import type { Metadata } from "next"; import { MarkdownBody } from "@/components/markdown-body"; import { BureauNav } from "@/components/bureau-nav"; +import { SiteHeader } from "@/components/site-header"; import { getLocale } from "@/components/locale-toggle"; import { pickLocaleBody } from "@/lib/bilingual"; @@ -151,6 +152,7 @@ export default async function CaseReportPage({ return (
+ 32 ? title.slice(0, 32) + "…" : title }, diff --git a/web/app/h/[hypothesisId]/page.tsx b/web/app/h/[hypothesisId]/page.tsx index d5d4dc6..3faeab3 100644 --- a/web/app/h/[hypothesisId]/page.tsx +++ b/web/app/h/[hypothesisId]/page.tsx @@ -17,6 +17,7 @@ import { readFile } from "node:fs/promises"; import path from "node:path"; import { pgQuery } from "@/lib/retrieval/db"; import { BureauNav } from "@/components/bureau-nav"; +import { SiteHeader } from "@/components/site-header"; import { getLocale } from "@/components/locale-toggle"; import { RedTeamRequestButton } from "@/components/red-team-request-button"; @@ -198,6 +199,7 @@ export default async function HypothesisPage({ return (
+ + )} - - {/* Desktop right cluster — toggle + auth. Hidden on mobile; the - hamburger drawer carries the same controls there. */} - - - - - {/* Mobile menu — hamburger that opens the full primary nav drawer. */} - - -
);