fix: prevent asset conflicts between React and Grid.js versions

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>
This commit is contained in:
dwindown
2026-04-18 17:02:14 +07:00
parent bd9cdac02e
commit e8fbfb14c1
74973 changed files with 6658406 additions and 71 deletions

View File

@@ -0,0 +1,39 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _element = require("@wordpress/element");
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function stopPropagation(event) {
event.stopPropagation();
}
const IsolatedEventContainer = (0, _element.forwardRef)((props, ref) => {
(0, _deprecated.default)('wp.components.IsolatedEventContainer', {
since: '5.7'
});
// Disable reason: this stops certain events from propagating outside of the component.
// - onMouseDown is disabled as this can cause interactions with other DOM elements.
/* eslint-disable jsx-a11y/no-static-element-interactions */
return (0, _react.createElement)("div", {
...props,
ref: ref,
onMouseDown: stopPropagation
});
/* eslint-enable jsx-a11y/no-static-element-interactions */
});
var _default = IsolatedEventContainer;
exports.default = _default;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_element","require","_deprecated","_interopRequireDefault","stopPropagation","event","IsolatedEventContainer","forwardRef","props","ref","deprecated","since","_react","createElement","onMouseDown","_default","exports","default"],"sources":["@wordpress/components/src/isolated-event-container/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentPropsWithoutRef, MouseEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\nfunction stopPropagation( event: MouseEvent ) {\n\tevent.stopPropagation();\n}\n\ntype DivProps = ComponentPropsWithoutRef< 'div' >;\n\nconst IsolatedEventContainer = forwardRef< HTMLDivElement, DivProps >(\n\t( props, ref ) => {\n\t\tdeprecated( 'wp.components.IsolatedEventContainer', {\n\t\t\tsince: '5.7',\n\t\t} );\n\n\t\t// Disable reason: this stops certain events from propagating outside of the component.\n\t\t// - onMouseDown is disabled as this can cause interactions with other DOM elements.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn <div { ...props } ref={ ref } onMouseDown={ stopPropagation } />;\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n);\n\nexport default IsolatedEventContainer;\n"],"mappings":";;;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,SAASG,eAAeA,CAAEC,KAAiB,EAAG;EAC7CA,KAAK,CAACD,eAAe,CAAC,CAAC;AACxB;AAIA,MAAME,sBAAsB,GAAG,IAAAC,mBAAU,EACxC,CAAEC,KAAK,EAAEC,GAAG,KAAM;EACjB,IAAAC,mBAAU,EAAE,sCAAsC,EAAE;IACnDC,KAAK,EAAE;EACR,CAAE,CAAC;;EAEH;EACA;EACA;EACA,OAAO,IAAAC,MAAA,CAAAC,aAAA;IAAA,GAAUL,KAAK;IAAGC,GAAG,EAAGA,GAAK;IAACK,WAAW,EAAGV;EAAiB,CAAE,CAAC;EACvE;AACD,CACD,CAAC;AAAC,IAAAW,QAAA,GAEaT,sBAAsB;AAAAU,OAAA,CAAAC,OAAA,GAAAF,QAAA"}