import { SvgNmrExportAsMatrix } from 'cheminfo-font'; import { IoAnalytics } from 'react-icons/io5'; import { TbBrandGoogleAnalytics } from 'react-icons/tb'; import { TooltipHelpContent } from 'react-science/ui'; import { useChartData } from '../../context/ChartContext.js'; import { usePreferences } from '../../context/PreferencesContext.js'; import { usePanelPreferences } from '../../hooks/usePanelPreferences.js'; import { useToggleSpectraVisibility } from '../../hooks/useToggleSpectraVisibility.js'; import { booleanToString } from '../../utility/booleanToString.js'; import { exportAsMatrix } from '../../utility/export.js'; import DefaultPanelHeader from '../header/DefaultPanelHeader.js'; import { useHasSignalProcessingFilter } from './MatrixGenerationPanel.js'; interface MatrixGenerationPanelHeaderProps { showStocsy: boolean; showBoxPlot: boolean; } export function MatrixGenerationPanelHeader( props: MatrixGenerationPanelHeaderProps, ) { const { showStocsy, showBoxPlot } = props; const { data, view: { spectra: { activeTab }, }, } = useChartData(); const { dispatch: dispatchPreferences } = usePreferences(); const spectraPreferences = usePanelPreferences('spectra', activeTab); const { getToggleVisibilityButtons } = useToggleSpectraVisibility({ enableHideSelected: false, enableShowSelected: false, enableShowSelectedOnly: false, }); const signalProcessingFilterData = useHasSignalProcessingFilter(); function handleExportAsMatrix() { exportAsMatrix(data, spectraPreferences?.columns || [], 'Spectra Matrix'); } function handleToggleStocsy() { dispatchPreferences({ type: 'TOGGLE_MATRIX_GENERATION_VIEW_PROPERTY', payload: { key: 'showStocsy', nucleus: activeTab }, }); } function handleToggleBoxplot() { dispatchPreferences({ type: 'TOGGLE_MATRIX_GENERATION_VIEW_PROPERTY', payload: { key: 'showBoxPlot', nucleus: activeTab }, }); } return ( , tooltip: , onClick: handleExportAsMatrix, }, ...getToggleVisibilityButtons(), { disabled: !signalProcessingFilterData, icon: , tooltip: , onClick: handleToggleStocsy, active: showStocsy, }, { disabled: !signalProcessingFilterData, icon: , tooltip: , onClick: handleToggleBoxplot, active: showBoxPlot, }, ]} /> ); } function ExportAsMatrixTooltip() { return ( ); } interface StocsyTooltipProps { showStocsy: boolean; } function StocsyTooltip({ showStocsy }: StocsyTooltipProps) { return ( ); } interface BoxPlotTooltipProps { showBoxPlot: boolean; } function BoxPlotTooltip({ showBoxPlot }: BoxPlotTooltipProps) { return ( ); }