Decorative images on the marketing pages stay quiet, and every dialog close button is named Close. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
963 B
TypeScript
34 lines
963 B
TypeScript
"use client";
|
|
|
|
import { memo } from "react";
|
|
import { usePathname } from "next/navigation";
|
|
import { isChromelessNavigationPath } from "../../../lib/navigationChromelessPath";
|
|
import TopWithPathname from "./Top/TopWithPathname";
|
|
|
|
export type ConditionalNavigationClientProps = {
|
|
initialSignedIn: boolean;
|
|
siteOrigin: string;
|
|
};
|
|
|
|
/**
|
|
* Client shell: pathname-based visibility. Session for the first paint comes from the
|
|
* parent Server Component (`ConditionalNavigation`) via `initialSignedIn`.
|
|
*/
|
|
const ConditionalNavigationClient = memo(
|
|
({ initialSignedIn, siteOrigin }: ConditionalNavigationClientProps) => {
|
|
const pathname = usePathname();
|
|
|
|
if (isChromelessNavigationPath(pathname)) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<TopWithPathname initialSignedIn={initialSignedIn} siteOrigin={siteOrigin} />
|
|
);
|
|
},
|
|
);
|
|
|
|
ConditionalNavigationClient.displayName = "ConditionalNavigationClient";
|
|
|
|
export default ConditionalNavigationClient;
|