import { Icon } from '@ohif/ui'; import { ButtonEnums } from '@ohif/ui'; import React, { ReactElement, useState, useCallback } from 'react'; import { Button, InputFilterText } from '@ohif/ui'; import { ViewportPreset, VolumeRenderingPresetsContentProps } from '../../types/ViewportPresets'; export function VolumeRenderingPresetsContent({ presets, viewportId, commandsManager, onClose, }: VolumeRenderingPresetsContentProps): ReactElement { const [filteredPresets, setFilteredPresets] = useState(presets); const [searchValue, setSearchValue] = useState(''); const [selectedPreset, setSelectedPreset] = useState(null); const handleSearchChange = useCallback( (value: string) => { setSearchValue(value); const filtered = value ? presets.filter(preset => preset.name.toLowerCase().includes(value.toLowerCase())) : presets; setFilteredPresets(filtered); }, [presets] ); const handleApply = useCallback( props => { commandsManager.runCommand('setViewportPreset', { ...props, }); }, [commandsManager] ); const formatLabel = (label: string, maxChars: number) => { return label.length > maxChars ? `${label.slice(0, maxChars)}...` : label; }; return (
{filteredPresets.map((preset, index) => (
{ setSelectedPreset(preset); handleApply({ preset: preset.name, viewportId }); }} >
))}
); }