import { InnerBlocks, useBlockProps } from "@wordpress/block-editor"; import { InspectorControl } from "../../components"; import { panelBodyRightIcon } from "../../icons/icons"; import { Inspector } from "./Inspector"; import dynamicCssFn from "./dynamicCss"; import { useEffect, useMemo, useRef, useState } from "@wordpress/element"; import { useSelect } from "@wordpress/data"; import { useDeviceType } from "../../controls/controls"; import editorStyleDependency from "./editorStyleDependency"; import { compose } from "@wordpress/compose"; import addInitialAttr from "../shared/addInitialAttr"; const ColumnEdit = ({ attributes, setAttributes, clientId, isSelected }) => { const { uniqueId, columnAdditionalID, columnAdditionalClass, customCss, columnWrapperLink, columnWrapperLinkUrl, columnWrapperLinkNewTab, columnBg, columnBgVideo, } = attributes; const blockProps = useBlockProps(); const deviceType = useDeviceType(); const containerColumnRef = useRef(null); const [isHovered, setIsHovered] = useState(false); const { getBlockOrder, getBlockRootClientId, getBlock } = useSelect((select) => select("core/block-editor"), []); const hasChildBlocks = getBlockOrder(clientId).length > 0; const parentBlockId = getBlockRootClientId(clientId); const parentAttr = getBlock(parentBlockId)?.attributes || {}; const parentFlexDir = parentAttr?.containerFlexDirection?.device?.[deviceType]; useEffect( () => { setAttributes( { parentContainerFlexDirection: parentAttr?.containerFlexDirection }) }, [ parentFlexDir ]) const blockStyling = useMemo( () => dynamicCssFn(attributes, "editor", deviceType), [...editorStyleDependency(attributes), deviceType] ); return ( <>