import * as React from 'react' import cs from 'classnames' import { useTheme } from 'next-themes' import { IoSunnyOutline } from '@react-icons/all-files/io5/IoSunnyOutline' import { IoMoonSharp } from '@react-icons/all-files/io5/IoMoonSharp' import { Header, Breadcrumbs, Search, useNotionContext } from 'react-notion-x' import * as types from 'lib/types' import { navigationStyle, navigationLinks, isSearchEnabled } from 'lib/config' import styles from './styles.module.css' export const NotionPageHeader: React.FC<{ block: types.CollectionViewPageBlock | types.PageBlock }> = ({ block }) => { const [hasMounted, setHasMounted] = React.useState(false) const { resolvedTheme, setTheme } = useTheme() const { components, mapPageUrl } = useNotionContext() React.useEffect(() => { setHasMounted(true) }, []) const onToggleTheme = React.useCallback(() => { setTheme(resolvedTheme === 'light' ? 'dark' : 'light') }, [resolvedTheme, setTheme]) if (navigationStyle === 'default') { return
} return (
{navigationLinks ?.map((link, index) => { if (!link.pageId && !link.url) { return null } if (link.pageId) { return ( {link.title} ) } else { return ( {link.title} ) } }) .filter(Boolean)}
{hasMounted && resolvedTheme === 'dark' ? ( ) : ( )}
{isSearchEnabled && }
) }