import { Component, NodeTypes } from 'myst-util-to-react'; import { useState } from 'react'; import { useReferences } from '../ReferencesProvider'; import { ClickPopover } from './ClickPopover'; function CiteChild({ label }: { label: string }) { const references = useReferences(); const { html } = references?.cite.data[label] ?? {}; return
; } export const CiteGroup: Component = (node, children) => { return ( {children} ); }; export const Cite: Component = (node, children) => { return ( }> {children} ); }; const HIDE_OVER_N_REFERENCES = 5; export function Bibliography() { const references = useReferences(); const { order, data } = references?.cite ?? {}; const filtered = order?.filter((l) => l); const [hidden, setHidden] = useState(true); if (!filtered || !data || filtered.length === 0) return null; const refs = hidden ? filtered.slice(0, HIDE_OVER_N_REFERENCES) : filtered; return (
{filtered.length > HIDE_OVER_N_REFERENCES && ( )}
References
    {refs.map((label) => { const { html } = data[label]; return (
  1. ); })} {filtered.length > HIDE_OVER_N_REFERENCES && (
  2. )}
); } export const citeRenderers: NodeTypes = { citeGroup: CiteGroup, cite: Cite, bibliography: (node) => , };