# post-carousel/4.0.2/src/blocks/buttons/edit.js

Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog &amp; News, version 4.0.2. 49 lines.

- Page: https://pluginprobe.com/plugins/post-carousel/4.0.2/code/src/blocks/buttons/edit.js
- Raw: https://pluginprobe.com/plugins/post-carousel/4.0.2/raw/src/blocks/buttons/edit.js
- Modified: 2026-04-24T11:48:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/post-carousel/4.0.2/code/src/blocks/buttons/edit.js#L10-L20`.

```javascript
import { useMemo } from "@wordpress/element";
import { useBlockProps, InnerBlocks } from "@wordpress/block-editor";
import InspectorControl from "../../components/inspectorControls/inspectorControls";
import { panelBodyRightIcon, panelBodyTitleIcon } from "../../icons/icons";
import dynamicCssFn from "./dynamicCss";
import Inspector from "./inspect";
import { useDeviceType } from "../../controls/controls";
import { compose } from "@wordpress/compose";
import addInitialAttr from "../shared/addInitialAttr";

const ButtonsEdit = ({ attributes, setAttributes }) => {
	const { uniqueId, additionalCssClass, customCss } = attributes;
	const currentDevice = useDeviceType();

	const dynamicCssValue = useMemo(
		() => dynamicCssFn(attributes, "frontend", currentDevice),
		[attributes, currentDevice]
	);
	const blockProps = useBlockProps({
		className: additionalCssClass,
	});

	return (
		<div {...blockProps}>
			<style>
				{dynamicCssValue}
				{customCss}
			</style>

			<InspectorControl
				TitleIcon={panelBodyTitleIcon}
				RightIcon={panelBodyRightIcon}
				Inspector={Inspector}
				attributes={attributes}
				setAttributes={setAttributes}
			/>
			<div className="sp-smart-post-buttons-editor-page sp-smart-post-buttons-wrapper" id={uniqueId}>
				<InnerBlocks
					__experimentalCaptureToolbars={false}
					allowedBlocks={["sp-smart-post-show/button"]}
					template={[["sp-smart-post-show/button"]]}
				/>
			</div>
		</div>
	);
};

export default compose(addInitialAttr)(ButtonsEdit);

```
