import { ChangeEvent, FormEvent, useCallback } from 'react'; import { VariableWithMultiSupport } from '@grafana/data'; import { SelectionOptionsForm } from 'app/features/dashboard-scene/settings/variables/components/SelectionOptionsForm'; import { KeyedVariableIdentifier } from '../state/types'; import { toKeyedVariableIdentifier } from '../utils'; import { VariableEditorProps } from './types'; export interface SelectionOptionsEditorProps extends VariableEditorProps { onMultiChanged: (identifier: KeyedVariableIdentifier, value: boolean) => void; } export const SelectionOptionsEditor = ({ onMultiChanged: onMultiChangedProps, onPropChange, variable, }: SelectionOptionsEditorProps) => { const onMultiChanged = useCallback( (event: ChangeEvent) => { onMultiChangedProps(toKeyedVariableIdentifier(variable), event.target.checked); }, [onMultiChangedProps, variable] ); const onIncludeAllChanged = useCallback( (event: ChangeEvent) => { onPropChange({ propName: 'includeAll', propValue: event.target.checked }); }, [onPropChange] ); const onAllValueChanged = useCallback( (event: FormEvent) => { onPropChange({ propName: 'allValue', propValue: event.currentTarget.value }); }, [onPropChange] ); return ( ); }; SelectionOptionsEditor.displayName = 'SelectionOptionsEditor';