# post-carousel/4.0.7/src/blocks/smart-list/hook.js

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

- Page: https://pluginprobe.com/plugins/post-carousel/4.0.7/code/src/blocks/smart-list/hook.js
- Raw: https://pluginprobe.com/plugins/post-carousel/4.0.7/raw/src/blocks/smart-list/hook.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.7/code/src/blocks/smart-list/hook.js#L10-L20`.

```javascript
import { useEffect } from "@wordpress/element";

export const useSyncParentAttributes = ({ parentAttributes, attributes, setAttributes }) => {
	useEffect(() => {
		const { iconEnable, iconSource, svgIconName, iconName, listTitleEnable, descriptionEnable } = attributes;

		const updates = {};

		if (iconEnable === undefined) {
			updates.iconEnableParent = parentAttributes.iconEnable;
		}
		if (iconSource === undefined) {
			updates.iconSourceParent = parentAttributes.iconSource;
		}
		if (svgIconName === undefined) {
			updates.parentSvgIconName = parentAttributes.svgIconName;
		}
		if (iconName === undefined) {
			updates.parentIconName = parentAttributes.iconName;
		}
		if (listTitleEnable === undefined) {
			updates.parentListTitleEnable = parentAttributes.listTitleEnable;
		}
		if (descriptionEnable === undefined) {
			updates.parentDescriptionEnable = parentAttributes.descriptionEnable;
		}

		if (attributes.parentIconSourceCustom !== parentAttributes.iconSourceCustom) {
			updates.parentIconSourceCustom = parentAttributes.iconSourceCustom;
		}
		if (attributes.parentListsLayout !== parentAttributes.smartListsLayout) {
			updates.parentListsLayout = parentAttributes.smartListsLayout;
		}

		if (Object.keys(updates).length > 0) {
			setAttributes(updates);
		}
	}, [
		attributes.iconEnable,
		attributes.iconSource,
		attributes.svgIconName,
		attributes.iconName,
		attributes.listTitleEnable,
		attributes.descriptionEnable,
		attributes.parentIconSourceCustom,
		attributes.parentListsLayout,
		parentAttributes.iconEnable,
		parentAttributes.iconSource,
		parentAttributes.svgIconName,
		parentAttributes.iconName,
		parentAttributes.listTitleEnable,
		parentAttributes.descriptionEnable,
		parentAttributes.iconSourceCustom,
		parentAttributes.smartListsLayout,
		setAttributes,
	]);
};

```
