import type { Ranges as RangesProps } from '@zakodium/nmr-types'; import type { Spectrum1D } from '@zakodium/nmrium-core'; import { memo } from 'react'; import { useActiveSpectrumRangesViewState } from '../../hooks/useActiveSpectrumRangesViewState.js'; import useSpectrum from '../../hooks/useSpectrum.js'; import MultiplicityTreeNode from './MultiplicityTree.js'; interface MultiplicityTreesInnerProps { ranges: RangesProps; } function MultiplicityTreesInner({ ranges }: MultiplicityTreesInnerProps) { return ( {ranges?.values?.map((range) => ( ))} ); } const MemoizedMultiplicityTrees = memo(MultiplicityTreesInner); const emptyData = { ranges: {}, info: {}, display: {} }; export default function MultiplicityTrees() { const { showMultiplicityTrees } = useActiveSpectrumRangesViewState(); const spectrum = useSpectrum(emptyData) as Spectrum1D; if ( !spectrum.ranges?.values || !spectrum.display.isVisible || spectrum.info?.isFid || !showMultiplicityTrees ) { return null; } return ; }