HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/drakkar_site_dev/wp-content/themes/blocksy/static/js/options/options/ct-layers-mirror.js
import { Fragment, createElement } from '@wordpress/element'
import OptionsPanel from '../OptionsPanel'

const LayersMirror = ({ values, onChangeFor, value, option, onChange }) => {
	const wholeLayers = values[option.layers] || []

	const ourLayers = wholeLayers.filter(
		({ id, enabled }) => enabled && id === option.field
	)

	if (ourLayers.length === 0) {
		return null
	}

	return ourLayers.map((layer, index) => {
		let computedOptions = Object.keys(option['inner-options']).reduce(
			(all, optionId) => ({
				...all,
				[optionId]: {
					...option['inner-options'][optionId],
					label: option['inner-options'][optionId].label.replace(
						'INDEX ',
						ourLayers.length === 1 ? '' : `${index + 1} `
					),
				},
			}),
			{}
		)

		return (
			<OptionsPanel
				key={layer.__id || layer.id}
				onChange={(id, value) => {
					onChangeFor(
						option.layers,
						wholeLayers.map((l) =>
							l.__id !== layer.__id
								? l
								: {
										...l,
										[id]: value,
								  }
						)
					)
				}}
				options={computedOptions}
				value={layer}
			/>
		)
	})
}

LayersMirror.renderingConfig = { design: 'none' }

export default LayersMirror