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,49 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.ProgressBar = void 0;
var _react = require("react");
var _i18n = require("@wordpress/i18n");
var _element = require("@wordpress/element");
var ProgressBarStyled = _interopRequireWildcard(require("./styles"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function UnforwardedProgressBar(props, ref) {
const {
className,
value,
...progressProps
} = props;
const isIndeterminate = !Number.isFinite(value);
return (0, _react.createElement)(ProgressBarStyled.Track, {
className: className
}, (0, _react.createElement)(ProgressBarStyled.Indicator, {
isIndeterminate: isIndeterminate,
value: value
}), (0, _react.createElement)(ProgressBarStyled.ProgressElement, {
max: 100,
value: value,
"aria-label": (0, _i18n.__)('Loading …'),
ref: ref,
...progressProps
}));
}
const ProgressBar = (0, _element.forwardRef)(UnforwardedProgressBar);
exports.ProgressBar = ProgressBar;
var _default = ProgressBar;
exports.default = _default;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_i18n","require","_element","ProgressBarStyled","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UnforwardedProgressBar","props","ref","className","value","progressProps","isIndeterminate","Number","isFinite","_react","createElement","Track","Indicator","ProgressElement","max","__","ProgressBar","forwardRef","exports","_default"],"sources":["@wordpress/components/src/progress-bar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as ProgressBarStyled from './styles';\nimport type { ProgressBarProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\nfunction UnforwardedProgressBar(\n\tprops: WordPressComponentProps< ProgressBarProps, 'progress', false >,\n\tref: ForwardedRef< HTMLProgressElement >\n) {\n\tconst { className, value, ...progressProps } = props;\n\tconst isIndeterminate = ! Number.isFinite( value );\n\n\treturn (\n\t\t<ProgressBarStyled.Track className={ className }>\n\t\t\t<ProgressBarStyled.Indicator\n\t\t\t\tisIndeterminate={ isIndeterminate }\n\t\t\t\tvalue={ value }\n\t\t\t/>\n\t\t\t<ProgressBarStyled.ProgressElement\n\t\t\t\tmax={ 100 }\n\t\t\t\tvalue={ value }\n\t\t\t\taria-label={ __( 'Loading …' ) }\n\t\t\t\tref={ ref }\n\t\t\t\t{ ...progressProps }\n\t\t\t/>\n\t\t</ProgressBarStyled.Track>\n\t);\n}\n\nexport const ProgressBar = forwardRef( UnforwardedProgressBar );\n\nexport default ProgressBar;\n"],"mappings":";;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,uBAAA,CAAAH,OAAA;AAA8C,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAF,wBAAAM,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAd9C;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAKA,SAASW,sBAAsBA,CAC9BC,KAAqE,EACrEC,GAAwC,EACvC;EACD,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC;EAAc,CAAC,GAAGJ,KAAK;EACpD,MAAMK,eAAe,GAAG,CAAEC,MAAM,CAACC,QAAQ,CAAEJ,KAAM,CAAC;EAElD,OACC,IAAAK,MAAA,CAAAC,aAAA,EAAClC,iBAAiB,CAACmC,KAAK;IAACR,SAAS,EAAGA;EAAW,GAC/C,IAAAM,MAAA,CAAAC,aAAA,EAAClC,iBAAiB,CAACoC,SAAS;IAC3BN,eAAe,EAAGA,eAAiB;IACnCF,KAAK,EAAGA;EAAO,CACf,CAAC,EACF,IAAAK,MAAA,CAAAC,aAAA,EAAClC,iBAAiB,CAACqC,eAAe;IACjCC,GAAG,EAAG,GAAK;IACXV,KAAK,EAAGA,KAAO;IACf,cAAa,IAAAW,QAAE,EAAE,WAAY,CAAG;IAChCb,GAAG,EAAGA,GAAK;IAAA,GACNG;EAAa,CAClB,CACuB,CAAC;AAE5B;AAEO,MAAMW,WAAW,GAAG,IAAAC,mBAAU,EAAEjB,sBAAuB,CAAC;AAACkB,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAAA,IAAAG,QAAA,GAEjDH,WAAW;AAAAE,OAAA,CAAAjC,OAAA,GAAAkC,QAAA"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"names":["_react","require","_utils","_EMOTION_STRINGIFIED_CSS_ERROR__","animateProgressBar","keyframes","left","INDETERMINATE_TRACK_WIDTH","exports","Track","_base","default","process","env","NODE_ENV","target","label","CONFIG","borderWidthFocus","COLORS","gray","radiusBlockUi","Indicator","isIndeterminate","value","css","animationDuration","animationTimingFunction","animationIterationCount","animationName","width","transition","ProgressElement","name","styles","map","toString"],"sources":["@wordpress/components/src/progress-bar/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\nimport { css, keyframes } from '@emotion/react';\n\n/**\n * Internal dependencies\n */\nimport { COLORS, CONFIG } from '../utils';\n\nconst animateProgressBar = keyframes( {\n\t'0%': {\n\t\tleft: '-50%',\n\t},\n\t'100%': {\n\t\tleft: '100%',\n\t},\n} );\n\n// Width of the indicator for the indeterminate progress bar\nexport const INDETERMINATE_TRACK_WIDTH = 50;\n\nexport const Track = styled.div`\n\tposition: relative;\n\toverflow: hidden;\n\twidth: 100%;\n\tmax-width: 160px;\n\theight: ${ CONFIG.borderWidthFocus };\n\t/* Text color at 10% opacity */\n\tbackground-color: color-mix(\n\t\tin srgb,\n\t\tvar( --wp-components-color-foreground, ${ COLORS.gray[ 900 ] } ),\n\t\ttransparent 90%\n\t);\n\tborder-radius: ${ CONFIG.radiusBlockUi };\n\n\t// Windows high contrast mode.\n\toutline: 2px solid transparent;\n\toutline-offset: 2px;\n`;\n\nexport const Indicator = styled.div< {\n\tisIndeterminate: boolean;\n\tvalue?: number;\n} >`\n\tdisplay: inline-block;\n\tposition: absolute;\n\ttop: 0;\n\theight: 100%;\n\tborder-radius: ${ CONFIG.radiusBlockUi };\n\t/* Text color at 90% opacity */\n\tbackground-color: color-mix(\n\t\tin srgb,\n\t\tvar( --wp-components-color-foreground, ${ COLORS.gray[ 900 ] } ),\n\t\ttransparent 10%\n\t);\n\n\t// Windows high contrast mode.\n\toutline: 2px solid transparent;\n\toutline-offset: -2px;\n\n\t${ ( { isIndeterminate, value } ) =>\n\t\tisIndeterminate\n\t\t\t? css( {\n\t\t\t\t\tanimationDuration: '1.5s',\n\t\t\t\t\tanimationTimingFunction: 'ease-in-out',\n\t\t\t\t\tanimationIterationCount: 'infinite',\n\t\t\t\t\tanimationName: animateProgressBar,\n\t\t\t\t\twidth: `${ INDETERMINATE_TRACK_WIDTH }%`,\n\t\t\t } )\n\t\t\t: css( {\n\t\t\t\t\twidth: `${ value }%`,\n\t\t\t\t\ttransition: 'width 0.4s ease-in-out',\n\t\t\t } ) };\n`;\n\nexport const ProgressElement = styled.progress`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\topacity: 0;\n\twidth: 100%;\n\theight: 100%;\n`;\n"],"mappings":";;;;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AAA0C,SAAAE,iCAAA;AAE1C,MAAMC,kBAAkB,GAAG,IAAAC,gBAAS,EAAE;EACrC,IAAI,EAAE;IACLC,IAAI,EAAE;EACP,CAAC;EACD,MAAM,EAAE;IACPA,IAAI,EAAE;EACP;AACD,CAAE,CAAC;;AAEH;AACO,MAAMC,yBAAyB,GAAG,EAAE;AAACC,OAAA,CAAAD,yBAAA,GAAAA,yBAAA;AAErC,MAAME,KAAK,OAAAC,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,2EAKNC,aAAM,CAACC,gBAAgB,6FAISC,aAAM,CAACC,IAAI,CAAE,GAAG,CAAE,kDAG3CH,aAAM,CAACI,aAAa,0DAAAT,OAAA,CAAAC,GAAA,CAAAC,QAAA,g9FAKtC;AAACN,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEK,MAAMa,SAAS,OAAAZ,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,8EAQHC,aAAM,CAACI,aAAa,6FAIKF,aAAM,CAACC,IAAI,CAAE,GAAG,CAAE,sFAQ1D,CAAE;EAAEG,eAAe;EAAEC;AAAM,CAAC,KAC9BD,eAAe,gBACZ,IAAAE,UAAG,EAAE;EACLC,iBAAiB,EAAE,MAAM;EACzBC,uBAAuB,EAAE,aAAa;EACtCC,uBAAuB,EAAE,UAAU;EACnCC,aAAa,EAAEzB,kBAAkB;EACjC0B,KAAK,EAAG,GAAGvB,yBAA2B;AACtC,CAAC,EAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,8CAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,88FAAC,CAAC,gBACH,IAAAW,UAAG,EAAE;EACLK,KAAK,EAAG,GAAGN,KAAO,GAAE;EACpBO,UAAU,EAAE;AACZ,CAAC,EAAAnB,OAAA,CAAAC,GAAA,CAAAC,QAAA,8CAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,88FAAC,CAAC,SAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,g9FACP;AAACN,OAAA,CAAAc,SAAA,GAAAA,SAAA;AAEK,MAAMU,eAAe,OAAAtB,KAAA,CAAAC,OAAA,cAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAmB,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAjC;AAAA,EAO3B;AAACK,OAAA,CAAAwB,eAAA,GAAAA,eAAA"}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sources":["@wordpress/components/src/progress-bar/types.ts"],"sourcesContent":["export type ProgressBarProps = {\n\t/**\n\t * Value of the progress bar.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * A CSS class to apply to the progress bar wrapper (track) element.\n\t */\n\tclassName?: string;\n};\n"],"mappings":""}