import React from 'react'; import { ButtonGroup, InputDoubleRange, InputRange } from '../../components'; const SETTING_TYPES = { RANGE: 'range', RADIO: 'radio', CUSTOM: 'custom', DOUBLE_RANGE: 'double-range', }; function ToolSettings({ options }) { if (!options) { return null; } if (typeof options === 'function') { return options(); } return (
{options?.map(option => { if (option.condition && option.condition?.({ options }) === false) { return null; } switch (option.type) { case SETTING_TYPES.RANGE: return renderRangeSetting(option); case SETTING_TYPES.RADIO: return renderRadioSetting(option); case SETTING_TYPES.DOUBLE_RANGE: return renderDoubleRangeSetting(option); case SETTING_TYPES.CUSTOM: return renderCustomSetting(option); default: return null; } })}
); } const renderRangeSetting = option => { return (
{option.name}
option.commands?.(value)} allowNumberEdit={true} showAdjustmentArrows={false} inputClassName="ml-1 w-4/5 cursor-pointer" />
); }; const renderRadioSetting = option => { const renderButtons = option => { return option.values?.map(({ label, value: optionValue }, index) => ( )); }; return (
{option.name}
value === option.value) || 0} > {renderButtons(option)}
); }; const renderDoubleRangeSetting = option => { return (
); }; const renderCustomSetting = option => { return (
{typeof option.children === 'function' ? option.children() : option.children}
); }; export default ToolSettings;