import type { GlossaryTerm } from '../../contexts/GlossaryTerms'; import Tooltip from '@tippyjs/react'; import React, { useContext } from 'react'; import GlossaryContext from '../../contexts/GlossaryTerms'; interface Props extends React.PropsWithChildren { term?: string; terms: GlossaryTerm[]; } const Glossary = ({ children, term: termProp, terms }: Props) => { const term = (Array.isArray(children) ? children[0] : children) || termProp; if (!term) return null; const foundTerm = terms.find(i => term.toLowerCase() === i?.term?.toLowerCase()); if (!foundTerm) return {term}; return ( {foundTerm.term} - {foundTerm.definition} } offset={[-5, 5]} placement="bottom-start" > {term} ); }; const GlossaryWithContext = (props: Omit) => { const terms = useContext(GlossaryContext); return terms ? : {props.term}; }; export { Glossary, GlossaryContext }; export default GlossaryWithContext;