import { useEffect, useState } from 'react'; import { Link } from 'react-router'; import { ArrowLeft, ArrowRight, ArrowUp } from 'lucide-react'; import { findNeighbour } from 'fumadocs-core/page-tree'; import type * as PageTree from 'fumadocs-core/page-tree'; import { config } from 'virtual:seemore/config'; /** `navigation.footer`: previous / next links. */ export function PageFooter({ tree, url }: { tree: PageTree.Root; url: string }) { const { previous, next } = findNeighbour(tree, url); if (previous === undefined && next === undefined) return null; return ( ); } export function SiteFooter() { if (config.footer === undefined) return null; return ( ); } /** `navigation.top`. Hidden until the page has actually been scrolled. */ export function BackToTop() { const [visible, setVisible] = useState(false); useEffect(() => { const onScroll = () => setVisible(window.scrollY > 400); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); if (!visible) return null; return ( ); }