- {/* Title + filters stay pinned below the global header so users always
- see which page they're on and can switch filters while scrolling. */}
+ {/* Filters stay pinned below the global header (which shows the page
+ name) so users can switch filters while scrolling. */}
- {title ? (
-
-
-
- ) : null}
updateParam("type", v)} />
diff --git a/src/layouts/PublicLayout.tsx b/src/layouts/PublicLayout.tsx
index b6611d0..c49646f 100644
--- a/src/layouts/PublicLayout.tsx
+++ b/src/layouts/PublicLayout.tsx
@@ -4,6 +4,7 @@ import { useEffect, useRef, useState } from "react";
import { Link, useLocation, useNavigate, useOutlet } from "react-router-dom";
import { pageTransition } from "../motion";
import { ArkLogoMark } from "../components/ArkLogoMark";
+import { usePageTitle } from "../components/PageTitleContext";
import { BackToTop } from "../components/BackToTop";
import { DocumentMeta } from "../components/DocumentMeta";
import { SearchPanel } from "../components/SearchPanel";
@@ -289,6 +290,8 @@ export function PublicLayout() {
navIsActive(pathname, search, hash, which);
const isHome = pathname === "/";
const footerInContentFlow = pathname === "/browse";
+ // Current page name shown in the header brand slot (falls back to the brand).
+ const pageTitle = usePageTitle();
const popularHref = "/browse?sort=popular";
const goSearch = () => {
@@ -365,20 +368,29 @@ export function PublicLayout() {