| Server IP : 104.21.28.229 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress/assets/src/apps/js/ |
Upload File : |
import triggerFetch from '@wordpress/api-fetch';
const createRegistryControl = function createRegistryControl( registryControl ) {
registryControl.isRegistryControl = true;
return registryControl;
};
export const apiFetch = ( request ) => {
return {
type: 'API_FETCH',
request,
};
};
export function select( storeKey, selectorName, ...args ) {
return {
type: 'SELECT',
storeKey,
selectorName,
args,
};
}
export function dispatch( storeKey, actionName, ...args ) {
return {
type: 'DISPATCH',
storeKey,
actionName,
args,
};
}
const resolveSelect = ( registry, { storeKey, selectorName, args } ) => {
return new Promise( ( resolve ) => {
const hasFinished = () => registry.select( '' )
.hasFinishedResolution( storeKey, selectorName, args );
const getResult = () => registry.select( storeKey )[ selectorName ]
.apply( null, args );
const result = getResult();
if ( hasFinished() ) {
return resolve( result );
}
const unsubscribe = registry.subscribe( () => {
if ( hasFinished() ) {
unsubscribe();
resolve( getResult() );
}
} );
} );
};
export const controls = {
API_FETCH( { request } ) {
return triggerFetch( request );
},
SELECT: createRegistryControl(
( registry ) => ( { storeKey, selectorName, args } ) => {
return registry.select( storeKey )[ selectorName ].hasResolver
? resolveSelect( registry, { storeKey, selectorName, args } )
: registry.select( storeKey )[ selectorName ]( ...args );
}
),
DISPATCH: createRegistryControl(
( registry ) => ( { storeKey, actionName, args } ) => {
return registry.dispatch( storeKey )[ actionName ]( ...args );
}
),
};