import classNames from 'classnames'; import { useReferences } from '@curvenote/ui-providers'; import type { NodeRenderer } from './types'; import { useState } from 'react'; import { ClickPopover } from './components/ClickPopover'; import { InlineError } from './inlineError'; function CiteChild({ label }: { label: string }) { const references = useReferences(); const { html } = references?.cite?.data[label] ?? {}; return
; } export const CiteGroup: NodeRenderer = (node, children) => { return ( {children} ); }; export const Cite: NodeRenderer = (node, children) => { if (node.error) { return ; } 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. )}
); } const CITE_RENDERERS: Record = { citeGroup: CiteGroup, cite: Cite, bibliography: (node) => , }; export default CITE_RENDERERS;