import { Header } from 'types'; import { useRef, useEffect } from 'react'; import { bindingAsideScroll, scrollToTarget } from '../../logic/asideScroll'; import { useHeaders } from '../../logic/useHeaders'; interface AsideProps { headers: Header[]; } export function Aside(props: AsideProps) { const { headers: rawHeaders = [] } = props; const headers = useHeaders(rawHeaders); const hasOutline = headers.length > 0; const markerRef = useRef(null); useEffect(() => { const unbinding = bindingAsideScroll(); return () => { unbinding(); }; }, []); const renderHeader = (header: Header) => { return (
  • { e.preventDefault(); const target = document.getElementById(header.id); target && scrollToTarget(target, false); }} > {header.text}
  • ); }; return (
    {hasOutline && (
    ON THIS PAGE
    )}
    ); }