import { PanelResizerProps, PanelResizerState, } from '@/ui_models/panel_resizer'; import { observer } from 'mobx-react-lite'; import { FunctionComponent } from 'preact'; import { useEffect, useRef, useState } from 'preact/hooks'; export const PanelResizer: FunctionComponent = observer( ({ alwaysVisible, application, defaultWidth, hoverable, collapsable, minWidth, panel, prefKey, resizeFinishCallback, side, widthEventCallback, }) => { const [panelResizerState] = useState( () => new PanelResizerState({ alwaysVisible, application, defaultWidth, hoverable, collapsable, minWidth, panel, prefKey, resizeFinishCallback, side, widthEventCallback, }) ); const panelResizerRef = useRef(null); useEffect(() => { if (panelResizerRef.current) { panelResizerState.setMinWidth(panelResizerRef.current.offsetWidth + 2); } }, [panelResizerState]); return (
); } );