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>
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
var react = require('react');
|
|
|
|
function areInputsEqual(newInputs, lastInputs) {
|
|
if (newInputs.length !== lastInputs.length) {
|
|
return false;
|
|
}
|
|
|
|
for (var i = 0; i < newInputs.length; i++) {
|
|
if (newInputs[i] !== lastInputs[i]) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function useMemoOne(getResult, inputs) {
|
|
var initial = react.useState(function () {
|
|
return {
|
|
inputs: inputs,
|
|
result: getResult()
|
|
};
|
|
})[0];
|
|
var isFirstRun = react.useRef(true);
|
|
var committed = react.useRef(initial);
|
|
var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));
|
|
var cache = useCache ? committed.current : {
|
|
inputs: inputs,
|
|
result: getResult()
|
|
};
|
|
react.useEffect(function () {
|
|
isFirstRun.current = false;
|
|
committed.current = cache;
|
|
}, [cache]);
|
|
return cache.result;
|
|
}
|
|
function useCallbackOne(callback, inputs) {
|
|
return useMemoOne(function () {
|
|
return callback;
|
|
}, inputs);
|
|
}
|
|
var useMemo = useMemoOne;
|
|
var useCallback = useCallbackOne;
|
|
|
|
exports.useCallback = useCallback;
|
|
exports.useCallbackOne = useCallbackOne;
|
|
exports.useMemo = useMemo;
|
|
exports.useMemoOne = useMemoOne;
|