Add coexistence checks to all enqueue methods to prevent loading both React and Grid.js assets simultaneously. Changes: - ReactAdmin.php: Only enqueue React assets when ?react=1 - Init.php: Skip Grid.js when React active on admin pages - Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0 - Customer.php, Product.php, License.php: Add coexistence checks Now the toggle between Classic and React versions works correctly. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
62 lines
2.0 KiB
JavaScript
62 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
/**
|
|
* Returns a function which, when invoked, will execute all callbacks
|
|
* registered to a hook of the specified type, optionally returning the final
|
|
* value of the call chain.
|
|
*
|
|
* @param {import('.').Hooks} hooks Hooks instance.
|
|
* @param {import('.').StoreKey} storeKey
|
|
* @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to
|
|
* return its first argument.
|
|
*
|
|
* @return {(hookName:string, ...args: unknown[]) => undefined|unknown} Function that runs hook callbacks.
|
|
*/
|
|
function createRunHook(hooks, storeKey, returnFirstArg = false) {
|
|
return function runHooks(hookName, ...args) {
|
|
const hooksStore = hooks[storeKey];
|
|
if (!hooksStore[hookName]) {
|
|
hooksStore[hookName] = {
|
|
handlers: [],
|
|
runs: 0
|
|
};
|
|
}
|
|
hooksStore[hookName].runs++;
|
|
const handlers = hooksStore[hookName].handlers;
|
|
|
|
// The following code is stripped from production builds.
|
|
if ('production' !== process.env.NODE_ENV) {
|
|
// Handle any 'all' hooks registered.
|
|
if ('hookAdded' !== hookName && hooksStore.all) {
|
|
handlers.push(...hooksStore.all.handlers);
|
|
}
|
|
}
|
|
if (!handlers || !handlers.length) {
|
|
return returnFirstArg ? args[0] : undefined;
|
|
}
|
|
const hookInfo = {
|
|
name: hookName,
|
|
currentIndex: 0
|
|
};
|
|
hooksStore.__current.push(hookInfo);
|
|
while (hookInfo.currentIndex < handlers.length) {
|
|
const handler = handlers[hookInfo.currentIndex];
|
|
const result = handler.callback.apply(null, args);
|
|
if (returnFirstArg) {
|
|
args[0] = result;
|
|
}
|
|
hookInfo.currentIndex++;
|
|
}
|
|
hooksStore.__current.pop();
|
|
if (returnFirstArg) {
|
|
return args[0];
|
|
}
|
|
return undefined;
|
|
};
|
|
}
|
|
var _default = exports.default = createRunHook;
|
|
//# sourceMappingURL=createRunHook.js.map
|