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,37 @@
import { createElement } from "react";
/**
* External dependencies
*/
/**
* Internal dependencies
*/
import { contextConnect } from '../../context';
import { Divider } from '../../divider';
import { useCardDivider } from './hook';
function UnconnectedCardDivider(props, forwardedRef) {
const dividerProps = useCardDivider(props);
return createElement(Divider, {
...dividerProps,
ref: forwardedRef
});
}
/**
* `CardDivider` renders an optional divider within a `Card`.
* It is typically used to divide multiple `CardBody` components from each other.
*
* ```jsx
* import { Card, CardBody, CardDivider } from `@wordpress/components`;
*
* <Card>
* <CardBody>...</CardBody>
* <CardDivider />
* <CardBody>...</CardBody>
* </Card>
* ```
*/
export const CardDivider = contextConnect(UnconnectedCardDivider, 'CardDivider');
export default CardDivider;
//# sourceMappingURL=component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["contextConnect","Divider","useCardDivider","UnconnectedCardDivider","props","forwardedRef","dividerProps","createElement","ref","CardDivider"],"sources":["@wordpress/components/src/card/card-divider/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport type { DividerProps } from '../../divider';\nimport { Divider } from '../../divider';\nimport { useCardDivider } from './hook';\n\nfunction UnconnectedCardDivider(\n\tprops: WordPressComponentProps< DividerProps, 'hr', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst dividerProps = useCardDivider( props );\n\n\treturn <Divider { ...dividerProps } ref={ forwardedRef } />;\n}\n\n/**\n * `CardDivider` renders an optional divider within a `Card`.\n * It is typically used to divide multiple `CardBody` components from each other.\n *\n * ```jsx\n * import { Card, CardBody, CardDivider } from `@wordpress/components`;\n *\n * <Card>\n * <CardBody>...</CardBody>\n * <CardDivider />\n * <CardBody>...</CardBody>\n * </Card>\n * ```\n */\nexport const CardDivider = contextConnect(\n\tUnconnectedCardDivider,\n\t'CardDivider'\n);\n\nexport default CardDivider;\n"],"mappings":";AAAA;AACA;AACA;;AAGA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,eAAe;AAE9C,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,cAAc,QAAQ,QAAQ;AAEvC,SAASC,sBAAsBA,CAC9BC,KAA2D,EAC3DC,YAAiC,EAChC;EACD,MAAMC,YAAY,GAAGJ,cAAc,CAAEE,KAAM,CAAC;EAE5C,OAAOG,aAAA,CAACN,OAAO;IAAA,GAAMK,YAAY;IAAGE,GAAG,EAAGH;EAAc,CAAE,CAAC;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,WAAW,GAAGT,cAAc,CACxCG,sBAAsB,EACtB,aACD,CAAC;AAED,eAAeM,WAAW"}

View File

@@ -0,0 +1,27 @@
/**
* WordPress dependencies
*/
import { useMemo } from '@wordpress/element';
/**
* Internal dependencies
*/
import { useContextSystem } from '../../context';
import * as styles from '../styles';
import { useCx } from '../../utils/hooks/use-cx';
export function useCardDivider(props) {
const {
className,
...otherProps
} = useContextSystem(props, 'CardDivider');
const cx = useCx();
const classes = useMemo(() => cx(styles.Divider, styles.borderColor,
// This classname is added for legacy compatibility reasons.
'components-card__divider', className), [className, cx]);
return {
...otherProps,
className: classes
};
}
//# sourceMappingURL=hook.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["useMemo","useContextSystem","styles","useCx","useCardDivider","props","className","otherProps","cx","classes","Divider","borderColor"],"sources":["@wordpress/components/src/card/card-divider/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport * as styles from '../styles';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type { DividerProps } from '../../divider';\n\nexport function useCardDivider(\n\tprops: WordPressComponentProps< DividerProps, 'hr', false >\n) {\n\tconst { className, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'CardDivider'\n\t);\n\n\tconst cx = useCx();\n\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tstyles.Divider,\n\t\t\t\tstyles.borderColor,\n\t\t\t\t// This classname is added for legacy compatibility reasons.\n\t\t\t\t'components-card__divider',\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx ]\n\t);\n\n\treturn {\n\t\t...otherProps,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;;AAEA,SAASC,gBAAgB,QAAQ,eAAe;AAChD,OAAO,KAAKC,MAAM,MAAM,WAAW;AACnC,SAASC,KAAK,QAAQ,0BAA0B;AAGhD,OAAO,SAASC,cAAcA,CAC7BC,KAA2D,EAC1D;EACD,MAAM;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GAAGN,gBAAgB,CACpDI,KAAK,EACL,aACD,CAAC;EAED,MAAMG,EAAE,GAAGL,KAAK,CAAC,CAAC;EAElB,MAAMM,OAAO,GAAGT,OAAO,CACtB,MACCQ,EAAE,CACDN,MAAM,CAACQ,OAAO,EACdR,MAAM,CAACS,WAAW;EAClB;EACA,0BAA0B,EAC1BL,SACD,CAAC,EACF,CAAEA,SAAS,EAAEE,EAAE,CAChB,CAAC;EAED,OAAO;IACN,GAAGD,UAAU;IACbD,SAAS,EAAEG;EACZ,CAAC;AACF"}

View File

@@ -0,0 +1,3 @@
export { default } from './component';
export { useCardDivider } from './hook';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["default","useCardDivider"],"sources":["@wordpress/components/src/card/card-divider/index.ts"],"sourcesContent":["export { default } from './component';\nexport { useCardDivider } from './hook';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,aAAa;AACrC,SAASC,cAAc,QAAQ,QAAQ"}