Heray-Was-Here
Server : LiteSpeed
System : Linux uk-fast-web1372.main-hosting.eu 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User : u390967363 ( 390967363)
PHP Version : 8.2.30
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Directory :  /home/u390967363/public_html/wp-content/themes/blocksy/static/js/options/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/u390967363/public_html/wp-content/themes/blocksy/static/js/options/OptionsRoot.js
import {
	createElement,
	Component,
	createRef,
	useRef,
	useCallback,
	useEffect,
	useState,
} from '@wordpress/element'
import OptionsPanel from './OptionsPanel'
import $ from 'jquery'

import ctEvents from 'ct-events'

const INITIAL_VALUE = '__INITIAL__'

const OptionsRoot = ({
	value,
	options,
	input_name,
	input_id,
	hasRevertButton,
}) => {
	const [internalValue, setInternalValue] = useState(value)

	const input = useRef()

	const handleChange = useCallback(({ id, value, input: inputRef }) => {
		if (inputRef === input.current) {
			setInternalValue((internalValue) => ({
				...internalValue,
				[id]: value,
			}))
		}
	}, [])

	useEffect(() => {
		ctEvents.on('ct:options:trigger-change', handleChange)

		return () => {
			ctEvents.off('ct:options:trigger-change', handleChange)
		}
	}, [])

	return (
		<div className="ct-options-root">
			<input
				value={JSON.stringify(
					Array.isArray(internalValue) ? {} : internalValue
				)}
				onChange={() => {}}
				name={input_name}
				id={input_id}
				type="hidden"
				ref={input}
			/>

			<OptionsPanel
				hasRevertButton={hasRevertButton}
				onChange={(key, newValue) => {
					setInternalValue((internalValue) => ({
						...internalValue,
						[key]: newValue,
					}))
					$(input.current).trigger('change')
				}}
				value={internalValue}
				options={options}
			/>
		</div>
	)
}

export default OptionsRoot

Hry