| Server IP : 38.190.208.107 / Your IP : 216.73.217.21 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/themes/blocksy/static/js/options/containers/ |
Upload File : |
import { createElement, useEffect } from '@wordpress/element'
import OptionsPanel from '../OptionsPanel'
const popupNewCloseActions = (valueDescriptor) => {
const newValue = {
...valueDescriptor.value,
}
let didChange = false
if (newValue.close_button_type === 'none') {
newValue.close_button_type = 'outside'
newValue.popup_close_button = 'no'
didChange = true
}
if (newValue.popup_additional_close_strategy) {
newValue.popup_custom_close = 'yes'
newValue.popup_custom_close_strategy =
newValue.popup_additional_close_strategy
newValue.popup_custom_close_button_selector =
newValue.aditional_close_button_click_selector
newValue.popup_custom_close_action_delay =
newValue.popup_additional_close_submit_delay
delete newValue.popup_additional_close_strategy
delete newValue.aditional_close_button_click_selector
delete newValue.popup_additional_close_submit_delay
didChange = true
}
return {
value: newValue,
didChange,
}
}
// When adding new migration, also implement same key in:
// - inc/helpers/options.php
const migrations = {
popups_new_close_actions: popupNewCloseActions,
}
const MigrateValues = ({
renderingChunk,
value,
onChange,
onChangeMultiple,
purpose,
parentValue,
hasRevertButton,
}) => {
useEffect(() => {
const allMigrations = renderingChunk.flatMap((migrationOption) => {
return migrationOption.migrations || []
})
const migratedValueDescriptor = allMigrations.reduce(
(valueDescriptor, migration) => {
const migrationFn = migrations[migration]
if (!migrationFn) {
return valueDescriptor
}
const migrationResult = migrationFn(valueDescriptor)
return {
value: migrationResult.value,
didChange:
migrationResult.didChange || valueDescriptor.didChange,
}
},
{
value,
didChange: false,
}
)
if (migratedValueDescriptor.didChange) {
onChangeMultiple(migratedValueDescriptor.value, {
deleteNonExistent: true,
})
}
}, [])
return renderingChunk.map((migrationOption) => {
return (
<OptionsPanel
purpose={purpose}
key={migrationOption.id}
onChange={onChange}
options={migrationOption.options}
value={value}
hasRevertButton={hasRevertButton}
parentValue={parentValue}
/>
)
})
}
export default MigrateValues