import { h, Fragment } from 'preact'; import { Link } from 'preact-router/match'; import { useCallback } from 'preact/hooks'; import { useDrawer } from '../context'; export default function NavigationDrawer({ children, header }) { const { showDrawer, setShowDrawer } = useDrawer(); const handleDismiss = useCallback(() => { setShowDrawer(false); }, [setShowDrawer]); return ( {showDrawer ?
: ''}
{header ? (
{header}
) : null}
); } export function Destination({ className = '', href, text, ...other }) { const external = href.startsWith('http'); const props = external ? { rel: 'noopener nofollow', target: '_blank' } : {}; const { setShowDrawer } = useDrawer(); const handleDismiss = useCallback(() => { setTimeout(() => { setShowDrawer(false); }, 250); }, [setShowDrawer]); const styleProps = { [external ? className : 'class']: 'block p-2 text-sm font-semibold text-gray-900 rounded hover:bg-blue-500 dark:text-gray-200 hover:text-white dark:hover:text-white focus:outline-none ring-opacity-50 focus:ring-2 ring-blue-300', }; const El = external ? 'a' : Link; return (
{text}
); } export function Separator() { return
; }