import type { JSX, ReactNode } from 'react'; import dynamic from 'next/dynamic'; import { usePageNotFound } from '~/states/page'; import styles from './PagePathNavLayout.module.scss'; const moduleClass = styles['grw-page-path-nav-layout'] ?? ''; export type PagePathNavLayoutProps = { pagePath: string; inline?: boolean; className?: string; pageId?: string | null; isWipPage?: boolean; maxWidth?: number; formerLinkClassName?: string; latterLinkClassName?: string; }; type Props = PagePathNavLayoutProps & { formerLink?: ReactNode; latterLink?: ReactNode; }; const CopyDropdown = dynamic( () => // biome-ignore lint/style/noRestrictedImports: no-problem dynamic import import('~/client/components/Common/CopyDropdown').then( (mod) => mod.CopyDropdown, ), { ssr: false }, ); export const PagePathNavLayout = (props: Props): JSX.Element => { const { className = '', inline = false, pageId, pagePath, isWipPage, formerLink, formerLinkClassName = '', latterLink, latterLinkClassName = '', maxWidth, } = props; const isNotFound = usePageNotFound(); const copyDropdownId = `copydropdown-in-pagepathnavlayout-${pageId}`; const containerLayoutClass = inline ? '' : 'd-flex align-items-center'; return (
{formerLink && ( {formerLink} )}

{latterLink}

{pageId != null && !isNotFound && ( {isWipPage && WIP} content_paste )}
); };