# post-carousel/4.0.7/src/admin/hooks/getOptions.js

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

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

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

const useGetOptions = (blocksSettings, modulesOptions, integrationOptions) => {
	const [success, setSuccess] = useState(true);

	const formData = new FormData();
	formData.append("nonce", sp_pcp_block_settings.nonce);
	formData.append("action", "sp_smart_post_block_option");
	formData.append("optionData", JSON.stringify(blocksSettings));
	formData.append("modulesData", JSON.stringify(modulesOptions));
	formData.append("integrations", JSON.stringify(integrationOptions));

	const fetchApi = async (data) => {
		try {
			const response = await axios.post(ajaxurl, data);
			if (200 !== response.status) {
				setSuccess(false);
			}
		} catch (error) {
			setSuccess(false);
			console.error("Error fetching posts:", error.message);
		}
	};

	useEffect(() => {
		fetchApi(formData);
	}, [blocksSettings, modulesOptions, integrationOptions]);

	return success;
};

export default useGetOptions;

```
