import { Tag } from '@blueprintjs/core'; import { forwardRef, useCallback, useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { usePreferences } from '../../context/PreferencesContext.js'; import { ColorPickerDropdownController } from '../../elements/ColorPickerDropdownController.js'; import { FormatField, fieldLabelStyle } from '../../elements/FormatField.js'; import Label from '../../elements/Label.js'; import { NumberInput2Controller } from '../../elements/NumberInput2Controller.js'; import { usePanelPreferences } from '../../hooks/usePanelPreferences.js'; import { PreferencesContainer } from '../extra/preferences/PreferencesContainer.js'; import { PreferencesGroup } from '../extra/preferences/PreferencesGroup.js'; import { useSettingImperativeHandle } from '../extra/utilities/settingImperativeHandle.js'; function DatabasePreferences(props: any, ref: any) { const preferences = usePreferences(); const databasePreferences = usePanelPreferences('database'); const saveHandler = useCallback( (values: any) => { preferences.dispatch({ type: 'SET_PANELS_PREFERENCES', payload: { key: 'database', value: values }, }); }, [preferences], ); const { handleSubmit, reset, control } = useForm({ defaultValues: databasePreferences, }); useEffect(() => { reset(databasePreferences); }, [databasePreferences, reset]); useSettingImperativeHandle(ref, handleSubmit, saveHandler); return ( ); } export default forwardRef(DatabasePreferences);