# packeta/2.3.2/src/PacketaWidget/useDynamicSettings.js

Packeta, version 2.3.2. 46 lines.

- Page: https://pluginprobe.com/plugins/packeta/2.3.2/code/src/PacketaWidget/useDynamicSettings.js
- Raw: https://pluginprobe.com/plugins/packeta/2.3.2/raw/src/PacketaWidget/useDynamicSettings.js
- Modified: 2025-03-10T10:47:38+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/packeta/2.3.2/code/src/PacketaWidget/useDynamicSettings.js#L10-L20`.

```javascript
/**
 * Additional loading of widget settings.
 *
 * @package Packetery
 */

import { useEffect, useState } from 'react';

export const useDynamicSettings = ( adminAjaxUrl ) => {
	let [ dynamicSettings, setDynamicSettings ] = useState( null );
	let [ loading, setLoading ] = useState( false );

	useEffect( () => {
		if ( ! loading && dynamicSettings === null ) {
			setLoading( true );
			fetch( adminAjaxUrl, {
				method: 'POST',
				headers: {
					'Content-Type': 'application/x-www-form-urlencoded',
				},
				body: new URLSearchParams( {
					action: 'get_settings',
				} ),
			} )
				.then( ( response ) => response.json() )
				.then( ( data ) => {
					const { isAgeVerificationRequired, biggestProductSize } = data;
					setDynamicSettings( prevState => ( {
						...prevState,
						isAgeVerificationRequired,
						biggestProductSize,
					} ) );
				} )
				.catch( ( error ) => {
					console.error( 'Error:', error );
					setDynamicSettings( false );
				} )
				.finally( () => {
					setLoading( false );
				} );
		}
	}, [ dynamicSettings, adminAjaxUrl, loading ] );

	return [ dynamicSettings, setDynamicSettings, loading ];
};

```
