diff --git a/app/components/navigation/ConditionalHeader/ConditionalHeader.container.tsx b/app/components/navigation/ConditionalHeader/ConditionalHeader.container.tsx deleted file mode 100644 index 5f006f1..0000000 --- a/app/components/navigation/ConditionalHeader/ConditionalHeader.container.tsx +++ /dev/null @@ -1,17 +0,0 @@ -"use client"; - -import { memo } from "react"; -import { usePathname } from "next/navigation"; -import { ConditionalHeaderView } from "./ConditionalHeader.view"; -import type { ConditionalHeaderProps } from "./ConditionalHeader.types"; - -const ConditionalHeaderContainer = memo(() => { - const pathname = usePathname(); - const isHomePage = pathname === "/"; - - return ; -}); - -ConditionalHeaderContainer.displayName = "ConditionalHeader"; - -export default ConditionalHeaderContainer; diff --git a/app/components/navigation/ConditionalHeader/ConditionalHeader.types.ts b/app/components/navigation/ConditionalHeader/ConditionalHeader.types.ts deleted file mode 100644 index 61af22a..0000000 --- a/app/components/navigation/ConditionalHeader/ConditionalHeader.types.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface ConditionalHeaderProps { - // Currently no props, but keeping interface for future extensibility -} - -export interface ConditionalHeaderViewProps { - isHomePage: boolean; -} diff --git a/app/components/navigation/ConditionalHeader/ConditionalHeader.view.tsx b/app/components/navigation/ConditionalHeader/ConditionalHeader.view.tsx deleted file mode 100644 index 80c808e..0000000 --- a/app/components/navigation/ConditionalHeader/ConditionalHeader.view.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import TopNav from "../TopNav"; -import type { ConditionalHeaderViewProps } from "./ConditionalHeader.types"; - -export function ConditionalHeaderView({ - isHomePage, -}: ConditionalHeaderViewProps) { - return ; -} diff --git a/app/components/navigation/ConditionalHeader/index.tsx b/app/components/navigation/ConditionalHeader/index.tsx deleted file mode 100644 index a05fd67..0000000 --- a/app/components/navigation/ConditionalHeader/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./ConditionalHeader.container"; -export type { ConditionalHeaderProps } from "./ConditionalHeader.types"; diff --git a/app/components/navigation/TopNav/TopNavWithPathname.tsx b/app/components/navigation/TopNav/TopNavWithPathname.tsx new file mode 100644 index 0000000..7820ddf --- /dev/null +++ b/app/components/navigation/TopNav/TopNavWithPathname.tsx @@ -0,0 +1,21 @@ +"use client"; + +import { memo } from "react"; +import { usePathname } from "next/navigation"; +import TopNav from "./TopNav.container"; +import type { TopNavProps } from "./TopNav.types"; + +/** + * TopNav wrapper that automatically determines folderTop based on current pathname. + * Use this in layout.tsx instead of ConditionalHeader. + */ +const TopNavWithPathname = memo>((props) => { + const pathname = usePathname(); + const isHomePage = pathname === "/"; + + return ; +}); + +TopNavWithPathname.displayName = "TopNavWithPathname"; + +export default TopNavWithPathname; diff --git a/app/layout.tsx b/app/layout.tsx index 9176575..c7d531c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -5,7 +5,7 @@ import dynamic from "next/dynamic"; import { MessagesProvider } from "./contexts/MessagesContext"; import messages from "../messages/en/index"; import "./globals.css"; -import ConditionalHeader from "./components/navigation/ConditionalHeader"; +import TopNavWithPathname from "./components/navigation/TopNav/TopNavWithPathname"; // Code split Footer - below the fold, can be lazy loaded const Footer = dynamic(() => import("./components/navigation/Footer"), { @@ -107,7 +107,7 @@ export default function RootLayout({ children }: { children: ReactNode }) { >
- +
{children}
diff --git a/stories/navigation/ConditionalHeader.stories.js b/stories/navigation/ConditionalHeader.stories.js deleted file mode 100644 index 288c546..0000000 --- a/stories/navigation/ConditionalHeader.stories.js +++ /dev/null @@ -1,38 +0,0 @@ -import ConditionalHeader from "../../app/components/navigation/ConditionalHeader"; - -export default { - title: "Components/Navigation/ConditionalHeader", - component: ConditionalHeader, - parameters: { - docs: { - description: { - component: - "The ConditionalHeader component conditionally renders either HomeHeader (for home page) or Header (for other pages) based on the current pathname. HomeHeader is not sticky, while Header has sticky positioning.", - }, - }, - }, - argTypes: { - pathname: { - control: "text", - description: "Current pathname to determine which header to render", - }, - }, -}; - -export const HomePage = { - args: { - pathname: "/", - }, -}; - -export const BlogPage = { - args: { - pathname: "/blog/sample-article", - }, -}; - -export const OtherPage = { - args: { - pathname: "/about", - }, -};