import { BaseControl, CheckboxControl, TextControl, PanelBody, } from '@wordpress/components'; import { useEffect, useRef, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { useThemeStore } from '../../state/theme'; import { AttributesPropsAndSetter } from '../../types'; import { SeeMoreSelect } from './SeeMoreSelect'; export const HeightPanel = ({ attributes, setAttributes, }: AttributesPropsAndSetter) => { const [editorHeight, setEditorHeight] = useState(attributes?.editorHeight); const [enableMaxHeight, setEnableMaxHeight] = useState( attributes?.enableMaxHeight ?? false, ); const [seeMoreString, setSeeMoreString] = useState( attributes?.seeMoreString ?? '', ); const [seeMoreAfterLine, setSeeMoreAfterLine] = useState( attributes?.seeMoreAfterLine ?? '', ); const [seeMoreTransition, setSeeMoreTransition] = useState( attributes?.seeMoreTransition ?? false, ); const [seeMoreCollapse, setSeeMoreCollapse] = useState( attributes?.seeMoreCollapse ?? false, ); const [seeMoreCollapseString, setSeeMoreCollapseString] = useState( attributes?.seeMoreCollapseString ?? '', ); const open = useRef(Number(attributes?.editorHeight) > 0); const { updateThemeHistory } = useThemeStore(); useEffect(() => { setAttributes({ editorHeight, seeMoreString, seeMoreAfterLine, seeMoreTransition, seeMoreCollapse, seeMoreCollapseString, enableMaxHeight, }); }, [ editorHeight, seeMoreString, seeMoreAfterLine, seeMoreTransition, seeMoreCollapse, seeMoreCollapseString, setAttributes, enableMaxHeight, ]); return ( { setEditorHeight(editorHeight); }} value={editorHeight} /> { setEnableMaxHeight(enableMaxHeight); }} /> {enableMaxHeight && ( <> { setSeeMoreAfterLine(seeMoreAfterLine); }} value={seeMoreAfterLine} /> { setSeeMoreTransition(seeMoreTransition); updateThemeHistory({ seeMoreTransition }); }} /> { setSeeMoreString(seeMoreString); updateThemeHistory({ seeMoreString }); }} value={seeMoreString ?? ''} /> { setSeeMoreCollapse(seeMoreCollapse); updateThemeHistory({ seeMoreCollapse }); }} /> {seeMoreCollapse ? ( { setSeeMoreCollapseString( seeMoreCollapseString, ); updateThemeHistory({ seeMoreCollapseString, }); }} value={seeMoreCollapseString ?? ''} /> ) : null} { setAttributes({ seeMoreType }); updateThemeHistory({ seeMoreType }); }} /> )} ); };