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 @@
import { createElement } from "react";
/**
* External dependencies
*/
/**
* Internal dependencies
*/
import { contextConnect } from '../../context';
import { View } from '../../view';
import { useFlexBlock } from './hook';
function UnconnectedFlexBlock(props, forwardedRef) {
const flexBlockProps = useFlexBlock(props);
return createElement(View, {
...flexBlockProps,
ref: forwardedRef
});
}
/**
* `FlexBlock` is a primitive layout component that adaptively resizes content
* within layout containers like `Flex`.
*
* ```jsx
* import { Flex, FlexBlock } from '@wordpress/components';
*
* function Example() {
* return (
* <Flex>
* <FlexBlock>...</FlexBlock>
* </Flex>
* );
* }
* ```
*/
export const FlexBlock = contextConnect(UnconnectedFlexBlock, 'FlexBlock');
export default FlexBlock;
//# sourceMappingURL=component.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["contextConnect","View","useFlexBlock","UnconnectedFlexBlock","props","forwardedRef","flexBlockProps","createElement","ref","FlexBlock"],"sources":["@wordpress/components/src/flex/flex-block/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 { View } from '../../view';\nimport type { FlexBlockProps } from '../types';\nimport { useFlexBlock } from './hook';\n\nfunction UnconnectedFlexBlock(\n\tprops: WordPressComponentProps< FlexBlockProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst flexBlockProps = useFlexBlock( props );\n\n\treturn <View { ...flexBlockProps } ref={ forwardedRef } />;\n}\n\n/**\n * `FlexBlock` is a primitive layout component that adaptively resizes content\n * within layout containers like `Flex`.\n *\n * ```jsx\n * import { Flex, FlexBlock } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <Flex>\n * <FlexBlock>...</FlexBlock>\n * </Flex>\n * );\n * }\n * ```\n */\nexport const FlexBlock = contextConnect( UnconnectedFlexBlock, 'FlexBlock' );\n\nexport default FlexBlock;\n"],"mappings":";AAAA;AACA;AACA;;AAGA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,eAAe;AAC9C,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,YAAY,QAAQ,QAAQ;AAErC,SAASC,oBAAoBA,CAC5BC,KAAuD,EACvDC,YAAiC,EAChC;EACD,MAAMC,cAAc,GAAGJ,YAAY,CAAEE,KAAM,CAAC;EAE5C,OAAOG,aAAA,CAACN,IAAI;IAAA,GAAMK,cAAc;IAAGE,GAAG,EAAGH;EAAc,CAAE,CAAC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,SAAS,GAAGT,cAAc,CAAEG,oBAAoB,EAAE,WAAY,CAAC;AAE5E,eAAeM,SAAS"}

View File

@@ -0,0 +1,15 @@
/**
* Internal dependencies
*/
import { useContextSystem } from '../../context';
import { useFlexItem } from '../flex-item';
export function useFlexBlock(props) {
const otherProps = useContextSystem(props, 'FlexBlock');
const flexItemProps = useFlexItem({
isBlock: true,
...otherProps
});
return flexItemProps;
}
//# sourceMappingURL=hook.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["useContextSystem","useFlexItem","useFlexBlock","props","otherProps","flexItemProps","isBlock"],"sources":["@wordpress/components/src/flex/flex-block/hook.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useFlexItem } from '../flex-item';\nimport type { FlexBlockProps } from '../types';\n\nexport function useFlexBlock(\n\tprops: WordPressComponentProps< FlexBlockProps, 'div' >\n) {\n\tconst otherProps = useContextSystem( props, 'FlexBlock' );\n\tconst flexItemProps = useFlexItem( { isBlock: true, ...otherProps } );\n\n\treturn flexItemProps;\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,gBAAgB,QAAQ,eAAe;AAChD,SAASC,WAAW,QAAQ,cAAc;AAG1C,OAAO,SAASC,YAAYA,CAC3BC,KAAuD,EACtD;EACD,MAAMC,UAAU,GAAGJ,gBAAgB,CAAEG,KAAK,EAAE,WAAY,CAAC;EACzD,MAAME,aAAa,GAAGJ,WAAW,CAAE;IAAEK,OAAO,EAAE,IAAI;IAAE,GAAGF;EAAW,CAAE,CAAC;EAErE,OAAOC,aAAa;AACrB"}

View File

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

View File

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