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>
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import * as React from "react";
|
|
import { createComponent } from "reakit-system/createComponent";
|
|
import { createHook } from "reakit-system/createHook";
|
|
import { shallowEqual } from "reakit-utils/shallowEqual";
|
|
import { BOX_KEYS } from "./__keys";
|
|
|
|
export type BoxOptions = {
|
|
/**
|
|
* Options passed to `reakit-system-*`
|
|
* @private
|
|
*/
|
|
unstable_system?: any;
|
|
};
|
|
|
|
export type BoxHTMLProps = React.HTMLAttributes<any> &
|
|
React.RefAttributes<any> & {
|
|
/**
|
|
* Function returned by the hook to wrap the element to which html props
|
|
* will be passed.
|
|
*/
|
|
wrapElement?: (element: React.ReactNode) => React.ReactNode;
|
|
};
|
|
|
|
export type BoxProps = BoxOptions & BoxHTMLProps;
|
|
|
|
export const useBox = createHook<BoxOptions, BoxHTMLProps>({
|
|
name: "Box",
|
|
keys: BOX_KEYS,
|
|
propsAreEqual(prev, next) {
|
|
const { unstable_system: prevSystem, ...prevProps } = prev;
|
|
const { unstable_system: nextSystem, ...nextProps } = next;
|
|
if (prevSystem !== nextSystem && !shallowEqual(prevSystem, nextSystem)) {
|
|
return false;
|
|
}
|
|
return shallowEqual(prevProps, nextProps);
|
|
},
|
|
});
|
|
|
|
export const Box = createComponent({
|
|
as: "div",
|
|
useHook: useBox,
|
|
});
|