import React, { useState, useEffect } from "react"; import './pageSummary.scss' import _ from "lodash"; import Scrollspy from 'react-scrollspy' type PageSummaryProps = { entries: PageSummaryEntry[], } type PageSummaryEntry = { location: string, label: string, sourceSets: SourceSetFilterKey[] } type SourceSetFilterKey = string export const PageSummary: React.FC = ({ entries }: PageSummaryProps) => { const [hidden, setHidden] = useState(true); const [displayableEntries, setDisplayableEntries] = useState(entries) const handleMouseHover = () => { setHidden(!hidden) } useEffect(() => { const handeEvent = (event: CustomEvent) => { const displayable = entries.filter((entry) => entry.sourceSets.some((sourceset) => event.detail.includes(sourceset))) setDisplayableEntries(displayable) } window.addEventListener('sourceset-filter-change', handeEvent) return () => window.removeEventListener('sourceset-filter-change', handeEvent) }, [entries]) let classnames = "page-summary" if (hidden) classnames += " hidden" return (

On this page

{!hidden && e.location)} currentClassName="selected"> {displayableEntries.map((item) =>
  • {item.label}
  • )}
    }
    ) }