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,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.KeyboardAvoidingView = void 0;
var _reactNative = require("react-native");
/**
* External dependencies
*/
const KeyboardAvoidingView = _reactNative.KeyboardAvoidingView;
exports.KeyboardAvoidingView = KeyboardAvoidingView;
var _default = KeyboardAvoidingView;
exports.default = _default;
//# sourceMappingURL=index.android.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_reactNative","require","KeyboardAvoidingView","AndroidKeyboardAvoidingView","exports","_default","default"],"sources":["@wordpress/components/src/mobile/keyboard-avoiding-view/index.android.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { KeyboardAvoidingView as AndroidKeyboardAvoidingView } from 'react-native';\n\nexport const KeyboardAvoidingView = AndroidKeyboardAvoidingView;\n\nexport default KeyboardAvoidingView;\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,oBAAoB,GAAGC,iCAA2B;AAACC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA;AAAA,IAAAG,QAAA,GAEjDH,oBAAoB;AAAAE,OAAA,CAAAE,OAAA,GAAAD,QAAA"}

View File

@@ -0,0 +1,117 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.KeyboardAvoidingView = void 0;
var _react = require("react");
var _reactNative = require("react-native");
var _reactNativeSafeArea = _interopRequireDefault(require("react-native-safe-area"));
var _element = require("@wordpress/element");
var _compose = require("@wordpress/compose");
var _useIsFloatingKeyboard = _interopRequireDefault(require("../utils/use-is-floating-keyboard"));
var _styles = _interopRequireDefault(require("./styles.scss"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const AnimatedKeyboardAvoidingView = _reactNative.Animated.createAnimatedComponent(_reactNative.KeyboardAvoidingView);
const MIN_HEIGHT = 44;
const KeyboardAvoidingView = ({
parentHeight,
style,
withAnimatedHeight = false,
...otherProps
}) => {
const [resizeObserver, sizes] = (0, _compose.useResizeObserver)();
const [isKeyboardOpen, setIsKeyboardOpen] = (0, _element.useState)(false);
const [safeAreaBottomInset, setSafeAreaBottomInset] = (0, _element.useState)(0);
const {
height = 0
} = sizes || {};
const floatingKeyboard = (0, _useIsFloatingKeyboard.default)();
const animatedHeight = (0, _element.useRef)(new _reactNative.Animated.Value(MIN_HEIGHT)).current;
const {
height: fullHeight
} = _reactNative.Dimensions.get('screen');
const keyboardVerticalOffset = fullHeight - parentHeight;
(0, _element.useEffect)(() => {
_reactNativeSafeArea.default.getSafeAreaInsetsForRootView().then(({
safeAreaInsets
}) => {
setSafeAreaBottomInset(safeAreaInsets.bottom);
});
const safeAreaSubscription = _reactNativeSafeArea.default.addEventListener('safeAreaInsetsForRootViewDidChange', onSafeAreaInsetsUpdate);
const keyboardShowSubscription = _reactNative.Keyboard.addListener('keyboardWillShow', onKeyboardWillShow);
const keyboardHideSubscription = _reactNative.Keyboard.addListener('keyboardWillHide', onKeyboardWillHide);
return () => {
safeAreaSubscription.remove();
keyboardShowSubscription.remove();
keyboardHideSubscription.remove();
};
// Disable reason: deferring this refactor to the native team.
// see https://github.com/WordPress/gutenberg/pull/41166
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
function onSafeAreaInsetsUpdate({
safeAreaInsets
}) {
setSafeAreaBottomInset(safeAreaInsets.bottom);
}
function onKeyboardWillShow({
endCoordinates
}) {
setIsKeyboardOpen(true);
animatedHeight.setValue(endCoordinates.height + MIN_HEIGHT);
}
function onKeyboardWillHide({
duration,
startCoordinates
}) {
// The startCoordinates.height is set to wrong value when we use cmd + k for hide the keyboard (Have no idea why).
// Because of that the `setIsKeyboardOpened` is not invoked and the state of keyboard is wrong.
// The keyboardIsOpenBreakpoint use 100 as a fallback if the startCoordinates.height is too small (cmd + k case)
const keyboardIsOpenBreakpoint = startCoordinates.height > 100 ? startCoordinates.height / 3 : 100;
const animatedListenerId = animatedHeight.addListener(({
value
}) => {
if (value < keyboardIsOpenBreakpoint) {
setIsKeyboardOpen(false);
}
});
_reactNative.Animated.timing(animatedHeight, {
toValue: MIN_HEIGHT,
duration,
useNativeDriver: false
}).start(() => {
animatedHeight.removeListener(animatedListenerId);
});
}
return (0, _react.createElement)(AnimatedKeyboardAvoidingView, {
...otherProps,
enabled: !floatingKeyboard,
behavior: "padding",
keyboardVerticalOffset: keyboardVerticalOffset,
style: withAnimatedHeight ? [style, {
height: animatedHeight,
marginBottom: isKeyboardOpen ? -safeAreaBottomInset : 0
}] : style
}, (0, _react.createElement)(_reactNative.View, {
style: [{
top: -height + MIN_HEIGHT
}, _styles.default.animatedChildStyle, !withAnimatedHeight && _styles.default.defaultChildStyle]
}, resizeObserver, otherProps.children));
};
exports.KeyboardAvoidingView = KeyboardAvoidingView;
var _default = KeyboardAvoidingView;
exports.default = _default;
//# sourceMappingURL=index.ios.js.map

File diff suppressed because one or more lines are too long