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,46 @@
import { createElement } from "react";
/**
* External dependencies
*/
/**
* Internal dependencies
*/
import { useContextSystem, contextConnect } from '../context';
import { visuallyHidden } from './styles';
import { View } from '../view';
function UnconnectedVisuallyHidden(props, forwardedRef) {
const {
style: styleProp,
...contextProps
} = useContextSystem(props, 'VisuallyHidden');
return createElement(View, {
ref: forwardedRef,
...contextProps,
style: {
...visuallyHidden,
...(styleProp || {})
}
});
}
/**
* `VisuallyHidden` is a component used to render text intended to be visually
* hidden, but will show for alternate devices, for example a screen reader.
*
* ```jsx
* import { VisuallyHidden } from `@wordpress/components`;
*
* function Example() {
* return (
* <VisuallyHidden>
* <label>Code is Poetry</label>
* </VisuallyHidden>
* );
* }
* ```
*/
export const VisuallyHidden = contextConnect(UnconnectedVisuallyHidden, 'VisuallyHidden');
export default VisuallyHidden;
//# sourceMappingURL=component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["useContextSystem","contextConnect","visuallyHidden","View","UnconnectedVisuallyHidden","props","forwardedRef","style","styleProp","contextProps","createElement","ref","VisuallyHidden"],"sources":["@wordpress/components/src/visually-hidden/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport { useContextSystem, contextConnect } from '../context';\nimport { visuallyHidden } from './styles';\nimport { View } from '../view';\nimport type { VisuallyHiddenProps } from './types';\n\nfunction UnconnectedVisuallyHidden(\n\tprops: WordPressComponentProps< VisuallyHiddenProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { style: styleProp, ...contextProps } = useContextSystem(\n\t\tprops,\n\t\t'VisuallyHidden'\n\t);\n\treturn (\n\t\t<View\n\t\t\tref={ forwardedRef }\n\t\t\t{ ...contextProps }\n\t\t\tstyle={ { ...visuallyHidden, ...( styleProp || {} ) } }\n\t\t/>\n\t);\n}\n\n/**\n * `VisuallyHidden` is a component used to render text intended to be visually\n * hidden, but will show for alternate devices, for example a screen reader.\n *\n * ```jsx\n * import { VisuallyHidden } from `@wordpress/components`;\n *\n * function Example() {\n * return (\n * <VisuallyHidden>\n * <label>Code is Poetry</label>\n * </VisuallyHidden>\n * );\n * }\n * ```\n */\nexport const VisuallyHidden = contextConnect(\n\tUnconnectedVisuallyHidden,\n\t'VisuallyHidden'\n);\n\nexport default VisuallyHidden;\n"],"mappings":";AAAA;AACA;AACA;;AAGA;AACA;AACA;;AAEA,SAASA,gBAAgB,EAAEC,cAAc,QAAQ,YAAY;AAC7D,SAASC,cAAc,QAAQ,UAAU;AACzC,SAASC,IAAI,QAAQ,SAAS;AAG9B,SAASC,yBAAyBA,CACjCC,KAA4D,EAC5DC,YAAiC,EAChC;EACD,MAAM;IAAEC,KAAK,EAAEC,SAAS;IAAE,GAAGC;EAAa,CAAC,GAAGT,gBAAgB,CAC7DK,KAAK,EACL,gBACD,CAAC;EACD,OACCK,aAAA,CAACP,IAAI;IACJQ,GAAG,EAAGL,YAAc;IAAA,GACfG,YAAY;IACjBF,KAAK,EAAG;MAAE,GAAGL,cAAc;MAAE,IAAKM,SAAS,IAAI,CAAC,CAAC;IAAG;EAAG,CACvD,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,cAAc,GAAGX,cAAc,CAC3CG,yBAAyB,EACzB,gBACD,CAAC;AAED,eAAeQ,cAAc"}

View File

@@ -0,0 +1,2 @@
export { default as VisuallyHidden } from './component';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["default","VisuallyHidden"],"sources":["@wordpress/components/src/visually-hidden/index.ts"],"sourcesContent":["export { default as VisuallyHidden } from './component';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,cAAc,QAAQ,aAAa"}

View File

@@ -0,0 +1,18 @@
/**
* External dependencies
*/
export const visuallyHidden = {
border: 0,
clip: 'rect(1px, 1px, 1px, 1px)',
WebkitClipPath: 'inset( 50% )',
clipPath: 'inset( 50% )',
height: '1px',
margin: '-1px',
overflow: 'hidden',
padding: 0,
position: 'absolute',
width: '1px',
wordWrap: 'normal'
};
//# sourceMappingURL=styles.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["visuallyHidden","border","clip","WebkitClipPath","clipPath","height","margin","overflow","padding","position","width","wordWrap"],"sources":["@wordpress/components/src/visually-hidden/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties } from 'react';\n\nexport const visuallyHidden: CSSProperties = {\n\tborder: 0,\n\tclip: 'rect(1px, 1px, 1px, 1px)',\n\tWebkitClipPath: 'inset( 50% )',\n\tclipPath: 'inset( 50% )',\n\theight: '1px',\n\tmargin: '-1px',\n\toverflow: 'hidden',\n\tpadding: 0,\n\tposition: 'absolute',\n\twidth: '1px',\n\twordWrap: 'normal',\n};\n"],"mappings":"AAAA;AACA;AACA;;AAGA,OAAO,MAAMA,cAA6B,GAAG;EAC5CC,MAAM,EAAE,CAAC;EACTC,IAAI,EAAE,0BAA0B;EAChCC,cAAc,EAAE,cAAc;EAC9BC,QAAQ,EAAE,cAAc;EACxBC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,MAAM;EACdC,QAAQ,EAAE,QAAQ;EAClBC,OAAO,EAAE,CAAC;EACVC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,KAAK;EACZC,QAAQ,EAAE;AACX,CAAC"}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sources":["@wordpress/components/src/visually-hidden/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\nexport type VisuallyHiddenProps = {\n\t/**\n\t * The children elements.\n\t */\n\tchildren: ReactNode;\n};\n"],"mappings":""}