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>
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
'use strict';
|
|
var globalThis = require('../internals/global-this');
|
|
var getBuiltInNodeModule = require('../internals/get-built-in-node-module');
|
|
var PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');
|
|
|
|
var structuredClone = globalThis.structuredClone;
|
|
var $ArrayBuffer = globalThis.ArrayBuffer;
|
|
var $MessageChannel = globalThis.MessageChannel;
|
|
var detach = false;
|
|
var WorkerThreads, channel, buffer, $detach;
|
|
|
|
if (PROPER_STRUCTURED_CLONE_TRANSFER) {
|
|
detach = function (transferable) {
|
|
structuredClone(transferable, { transfer: [transferable] });
|
|
};
|
|
} else if ($ArrayBuffer) try {
|
|
if (!$MessageChannel) {
|
|
WorkerThreads = getBuiltInNodeModule('worker_threads');
|
|
if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;
|
|
}
|
|
|
|
if ($MessageChannel) {
|
|
channel = new $MessageChannel();
|
|
buffer = new $ArrayBuffer(2);
|
|
|
|
$detach = function (transferable) {
|
|
channel.port1.postMessage(null, [transferable]);
|
|
};
|
|
|
|
if (buffer.byteLength === 2) {
|
|
$detach(buffer);
|
|
if (buffer.byteLength === 0) detach = $detach;
|
|
}
|
|
}
|
|
} catch (error) { /* empty */ }
|
|
|
|
module.exports = detach;
|