import { Switch, typedMemo } from '@invoke-ai/ui-library'; import type { ChangeEvent } from 'react'; import { useCallback, useMemo } from 'react'; import type { UseControllerProps } from 'react-hook-form'; import { useController } from 'react-hook-form'; import type { FormField } from './MainModelDefaultSettings/MainModelDefaultSettings'; export const SettingToggle = typedMemo(>>(props: UseControllerProps) => { const { field } = useController(props); const value = useMemo(() => { return !!(field.value as FormField).isEnabled; }, [field.value]); const onChange = useCallback( (e: ChangeEvent) => { const updatedValue: FormField = { ...(field.value as FormField), isEnabled: e.target.checked, }; field.onChange(updatedValue); }, [field] ); return ; }); SettingToggle.displayName = 'SettingToggle';