fix(demo): wrap pages with global SiteHeader + SiteFooter
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled

/demo and /demo/categories/$id rendered without the site chrome — no nav
to other marketing pages, no theme toggle, no KVKK/gizlilik/iletişim
links. Marketing-page parity (matches index/pricing/about) + B2B trust
(legal links visible, logo back to home).

* Both routes now use a flex-col page shell:
  SiteHeader (sticky top-0, z-50) → DemoBanner (sticky top-16, z-30) →
  main (flex-1) → SiteFooter.
* DemoBanner sticky offset changed top-0 → top-16 to sit under the site
  header instead of competing for the top edge.
This commit is contained in:
2026-06-02 01:27:41 +03:00
parent c7527e4845
commit 7da12607ef
3 changed files with 32 additions and 20 deletions

View File

@@ -1,5 +1,7 @@
import { DemoBanner } from "@/components/demo/demo-banner";
import { DemoFooterCta } from "@/components/demo/demo-footer-cta";
import { SiteFooter } from "@/components/site-footer";
import { SiteHeader } from "@/components/site-header";
import { usePageMeta } from "@/hooks/use-page-meta";
import { ApiError, api } from "@/lib/api-client";
import { KEYS_8 } from "@/lib/keys";
@@ -56,32 +58,37 @@ function DemoVehiclePage() {
if (vehicleError) {
return (
<div className="min-h-screen">
<div className="flex min-h-screen flex-col">
<SiteHeader />
<DemoBanner vehicleLabel="Örnek araç" />
<div className="mx-auto max-w-3xl px-4 py-12 sm:px-6">
<div
role="alert"
className="rounded-lg border border-destructive/40 bg-destructive/5 p-6 text-sm"
>
<p className="font-medium text-destructive">Demo aracı şu an yüklenemedi</p>
<p className="mt-1 text-muted-foreground">
Sayfayı tekrar açmayı deneyin. Sorun sürerse{" "}
<a className="underline" href="mailto:destek@sase.tr">
destek@sase.tr
</a>
.
</p>
<main className="flex-1">
<div className="mx-auto max-w-3xl px-4 py-12 sm:px-6">
<div
role="alert"
className="rounded-lg border border-destructive/40 bg-destructive/5 p-6 text-sm"
>
<p className="font-medium text-destructive">Demo aracı şu an yüklenemedi</p>
<p className="mt-1 text-muted-foreground">
Sayfayı tekrar açmayı deneyin. Sorun sürerse{" "}
<a className="underline" href="mailto:destek@sase.tr">
destek@sase.tr
</a>
.
</p>
</div>
</div>
</div>
</main>
<SiteFooter />
</div>
);
}
return (
<div className="min-h-screen">
<div className="flex min-h-screen flex-col">
<SiteHeader />
<DemoBanner vehicleLabel={vehicleLabel} />
<main className="mx-auto max-w-7xl px-4 py-6 sm:px-6 sm:py-8">
<main className="mx-auto w-full max-w-7xl flex-1 px-4 py-6 sm:px-6 sm:py-8">
{/* Vehicle header */}
<div className="mb-6">
{vehicleLoading ? (
@@ -136,6 +143,7 @@ function DemoVehiclePage() {
<DemoFooterCta source="footer" />
</main>
<SiteFooter />
</div>
);
}

View File

@@ -1,6 +1,8 @@
import { DemoBanner } from "@/components/demo/demo-banner";
import { DemoFooterCta } from "@/components/demo/demo-footer-cta";
import { SchemaViewer } from "@/components/schema/schema-viewer";
import { SiteFooter } from "@/components/site-footer";
import { SiteHeader } from "@/components/site-header";
import { usePageMeta } from "@/hooks/use-page-meta";
import type { CategorySchema } from "@/hooks/use-parts";
import { api } from "@/lib/api-client";
@@ -77,10 +79,11 @@ function DemoCategoryPage() {
};
return (
<div className="min-h-screen">
<div className="flex min-h-screen flex-col">
<SiteHeader />
<DemoBanner vehicleLabel={vehicleLabel} />
<main className="mx-auto max-w-7xl space-y-4 px-4 py-6 sm:px-6 sm:py-8">
<main className="mx-auto w-full max-w-7xl flex-1 space-y-4 px-4 py-6 sm:px-6 sm:py-8">
{/* Breadcrumb (inline — demo routes) */}
<DemoBreadcrumb
vehicleLabel={vehicleLabel}
@@ -192,6 +195,7 @@ function DemoCategoryPage() {
{data && !data.loadError && <DemoFooterCta source="category_footer" />}
</main>
<SiteFooter />
</div>
);
}