import type { RangesViewState } from '@zakodium/nmrium-core'; import { isProton } from '../../data/utilities/isProton.js'; import { useInsetOptions } from '../1d/inset/InsetProvider.js'; import { useChartData } from '../context/ChartContext.js'; import { useActiveSpectrum } from './useActiveSpectrum.js'; export function getDefaultRangesViewState(nucleus: string): RangesViewState { const isCarbon = nucleus === '13C'; return { showPeaks: isCarbon, showMultiplicityTrees: false, showIntegrals: false, showIntegralsValues: isProton(nucleus), showJGraph: false, displayingMode: 'spread', integralsScaleRatio: 1, showAssignmentsLabels: false, showPublicationString: false, showRanges: false, publicationStringBounding: { x: 0, y: 0, width: 400, height: 0 }, rangesBounding: { x: 0, y: 0, width: 200, height: 150 }, }; } export function useActiveSpectrumRangesViewState() { const activeSpectrum = useActiveSpectrum(); const { view: { ranges, spectra: { activeTab: nucleus }, }, } = useChartData(); const inset = useInsetOptions(); if (inset) { return inset.view.ranges; } if (activeSpectrum?.selected && ranges[activeSpectrum.id]) { return ranges[activeSpectrum.id]; } else { return getDefaultRangesViewState(nucleus); } }