import type { SpectraAnalysisColumns } from '@zakodium/nmrium-core'; import { ANALYSIS_COLUMN_TYPES } from '@zakodium/nmrium-core'; import { memo } from 'react'; import { useChartData } from '../../context/ChartContext.js'; import { usePanelPreferences } from '../../hooks/usePanelPreferences.js'; import AnalysisRange from './AnalysisRange.js'; interface MultiAnalysisRangesInnerProps { columns: SpectraAnalysisColumns; activeTab: string; } function MultiAnalysisRangesInner({ columns, activeTab, }: MultiAnalysisRangesInnerProps) { const ranges = Object.keys(columns).filter( (key) => columns[key].type !== ANALYSIS_COLUMN_TYPES.FORMULA, ); if (ranges.length === 0) { return null; } return ( {ranges.map((columnKey) => ( ))} ); } const MemoizedMultiAnalysisRanges = memo(MultiAnalysisRangesInner); export default function MultiAnalysisRanges() { const { view: { spectra: { activeTab }, }, } = useChartData(); const multipleSpectraAnalysis = usePanelPreferences( 'multipleSpectraAnalysis', activeTab, ); const columns = multipleSpectraAnalysis.analysisOptions?.columns; if (!columns) return null; return ; }