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,64 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.NavigationBackButton = void 0;
var _react = require("react");
var _classnames = _interopRequireDefault(require("classnames"));
var _element = require("@wordpress/element");
var _i18n = require("@wordpress/i18n");
var _icons = require("@wordpress/icons");
var _context = require("../context");
var _navigationStyles = require("../styles/navigation-styles");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function UnforwardedNavigationBackButton({
backButtonLabel,
className,
href,
onClick,
parentMenu
}, ref) {
const {
setActiveMenu,
navigationTree
} = (0, _context.useNavigationContext)();
const classes = (0, _classnames.default)('components-navigation__back-button', className);
const parentMenuTitle = parentMenu !== undefined ? navigationTree.getMenu(parentMenu)?.title : undefined;
const handleOnClick = event => {
if (typeof onClick === 'function') {
onClick(event);
}
const animationDirection = (0, _i18n.isRTL)() ? 'left' : 'right';
if (parentMenu && !event.defaultPrevented) {
setActiveMenu(parentMenu, animationDirection);
}
};
const icon = (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft;
return (0, _react.createElement)(_navigationStyles.MenuBackButtonUI, {
className: classes,
href: href,
variant: "tertiary",
ref: ref,
onClick: handleOnClick
}, (0, _react.createElement)(_icons.Icon, {
icon: icon
}), backButtonLabel || parentMenuTitle || (0, _i18n.__)('Back'));
}
const NavigationBackButton = (0, _element.forwardRef)(UnforwardedNavigationBackButton);
exports.NavigationBackButton = NavigationBackButton;
var _default = NavigationBackButton;
exports.default = _default;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_i18n","_icons","_context","_navigationStyles","UnforwardedNavigationBackButton","backButtonLabel","className","href","onClick","parentMenu","ref","setActiveMenu","navigationTree","useNavigationContext","classes","classnames","parentMenuTitle","undefined","getMenu","title","handleOnClick","event","animationDirection","isRTL","defaultPrevented","icon","chevronRight","chevronLeft","_react","createElement","MenuBackButtonUI","variant","Icon","__","NavigationBackButton","forwardRef","exports","_default","default"],"sources":["@wordpress/components/src/navigation/back-button/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useNavigationContext } from '../context';\nimport { MenuBackButtonUI } from '../styles/navigation-styles';\n\nimport type { NavigationBackButtonProps } from '../types';\n\nfunction UnforwardedNavigationBackButton(\n\t{\n\t\tbackButtonLabel,\n\t\tclassName,\n\t\thref,\n\t\tonClick,\n\t\tparentMenu,\n\t}: NavigationBackButtonProps,\n\tref: React.ForwardedRef< HTMLAnchorElement | HTMLButtonElement >\n) {\n\tconst { setActiveMenu, navigationTree } = useNavigationContext();\n\n\tconst classes = classnames(\n\t\t'components-navigation__back-button',\n\t\tclassName\n\t);\n\n\tconst parentMenuTitle =\n\t\tparentMenu !== undefined\n\t\t\t? navigationTree.getMenu( parentMenu )?.title\n\t\t\t: undefined;\n\n\tconst handleOnClick: React.MouseEventHandler< HTMLElement > = ( event ) => {\n\t\tif ( typeof onClick === 'function' ) {\n\t\t\tonClick( event );\n\t\t}\n\n\t\tconst animationDirection = isRTL() ? 'left' : 'right';\n\t\tif ( parentMenu && ! event.defaultPrevented ) {\n\t\t\tsetActiveMenu( parentMenu, animationDirection );\n\t\t}\n\t};\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\treturn (\n\t\t<MenuBackButtonUI\n\t\t\tclassName={ classes }\n\t\t\thref={ href }\n\t\t\tvariant=\"tertiary\"\n\t\t\tref={ ref }\n\t\t\tonClick={ handleOnClick }\n\t\t>\n\t\t\t<Icon icon={ icon } />\n\t\t\t{ backButtonLabel || parentMenuTitle || __( 'Back' ) }\n\t\t</MenuBackButtonUI>\n\t);\n}\n\nexport const NavigationBackButton = forwardRef(\n\tUnforwardedNavigationBackButton\n);\n\nexport default NavigationBackButton;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAfA;AACA;AACA;;AAEA;AACA;AACA;;AAKA;AACA;AACA;;AAMA,SAASM,+BAA+BA,CACvC;EACCC,eAAe;EACfC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC;AAC0B,CAAC,EAC5BC,GAAgE,EAC/D;EACD,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAG,IAAAC,6BAAoB,EAAC,CAAC;EAEhE,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EACzB,oCAAoC,EACpCT,SACD,CAAC;EAED,MAAMU,eAAe,GACpBP,UAAU,KAAKQ,SAAS,GACrBL,cAAc,CAACM,OAAO,CAAET,UAAW,CAAC,EAAEU,KAAK,GAC3CF,SAAS;EAEb,MAAMG,aAAqD,GAAKC,KAAK,IAAM;IAC1E,IAAK,OAAOb,OAAO,KAAK,UAAU,EAAG;MACpCA,OAAO,CAAEa,KAAM,CAAC;IACjB;IAEA,MAAMC,kBAAkB,GAAG,IAAAC,WAAK,EAAC,CAAC,GAAG,MAAM,GAAG,OAAO;IACrD,IAAKd,UAAU,IAAI,CAAEY,KAAK,CAACG,gBAAgB,EAAG;MAC7Cb,aAAa,CAAEF,UAAU,EAAEa,kBAAmB,CAAC;IAChD;EACD,CAAC;EACD,MAAMG,IAAI,GAAG,IAAAF,WAAK,EAAC,CAAC,GAAGG,mBAAY,GAAGC,kBAAW;EACjD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAC1B,iBAAA,CAAA2B,gBAAgB;IAChBxB,SAAS,EAAGQ,OAAS;IACrBP,IAAI,EAAGA,IAAM;IACbwB,OAAO,EAAC,UAAU;IAClBrB,GAAG,EAAGA,GAAK;IACXF,OAAO,EAAGY;EAAe,GAEzB,IAAAQ,MAAA,CAAAC,aAAA,EAAC5B,MAAA,CAAA+B,IAAI;IAACP,IAAI,EAAGA;EAAM,CAAE,CAAC,EACpBpB,eAAe,IAAIW,eAAe,IAAI,IAAAiB,QAAE,EAAE,MAAO,CAClC,CAAC;AAErB;AAEO,MAAMC,oBAAoB,GAAG,IAAAC,mBAAU,EAC7C/B,+BACD,CAAC;AAACgC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA;AAAA,IAAAG,QAAA,GAEaH,oBAAoB;AAAAE,OAAA,CAAAE,OAAA,GAAAD,QAAA"}