import React, { ReactElement, useCallback } from 'react'; import { AllInOneMenu } from '@ohif/ui-next'; import { WindowLevelPreset } from '../../types/WindowLevel'; import { useSystem } from '@ohif/core'; import { useTranslation } from 'react-i18next'; export type WindowLevelProps = { viewportId: string; presets: Array>>; }; export function WindowLevel({ viewportId, presets }: WindowLevelProps): ReactElement { const { commandsManager } = useSystem(); const { t } = useTranslation('WindowLevelActionMenu'); const onSetWindowLevel = useCallback( props => { commandsManager.run({ commandName: 'setViewportWindowLevel', commandOptions: { ...props, viewportId, }, context: 'CORNERSTONE', }); }, [commandsManager, viewportId] ); return ( {presets.map((modalityPresets, modalityIndex) => ( {Object.entries(modalityPresets).map(([modality, presetsArray]) => ( {t('Modality Presets', { modality })} {presetsArray.map((preset, index) => ( onSetWindowLevel(preset)} /> ))} ))} ))} ); }