/** * WordPress dependencies */ import React from "react"; import { useBlockEditContext, __experimentalSpacingSizesControl as SpacingSizesControl, } from "@wordpress/block-editor"; import { useSelect, useDispatch } from "@wordpress/data"; /** * Internal dependencies */ import { SpacingControlWithToolsPanelProps } from "./types"; /** * Spacing control with ToolsPanel component * Provides spacing control wrapped in ToolsPanel for reset functionality */ const SpacingControlWithToolsPanel: React.FC< SpacingControlWithToolsPanelProps > = ({ label, attrKey, minimumCustomValue = 0 }) => { const { clientId } = useBlockEditContext(); const attributes = useSelect((select) => select("core/block-editor").getBlockAttributes(clientId), ) as Record; const { updateBlockAttributes } = useDispatch("core/block-editor") as any; const setAttributes = (newAttributes: Record) => { updateBlockAttributes(clientId, newAttributes); }; return ( { setAttributes({ [attrKey]: newValue, }); }} /> ); }; export default SpacingControlWithToolsPanel;