Files
formipay/node_modules/@wordpress/components/build-module/box-control/input-controls.js
dwindown e8fbfb14c1 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>
2026-04-18 17:02:14 +07:00

119 lines
4.3 KiB
JavaScript

import { createElement, Fragment } from "react";
/**
* WordPress dependencies
*/
import { useInstanceId } from '@wordpress/compose';
/**
* Internal dependencies
*/
import Tooltip from '../tooltip';
import { parseQuantityAndUnitFromRawValue } from '../unit-control/utils';
import { ALL_SIDES, CUSTOM_VALUE_SETTINGS, LABELS } from './utils';
import { FlexedBoxControlIcon, FlexedRangeControl, InputWrapper, StyledUnitControl } from './styles/box-control-styles';
const noop = () => {};
export default function BoxInputControls({
__next40pxDefaultSize,
onChange = noop,
onFocus = noop,
values,
selectedUnits,
setSelectedUnits,
sides,
...props
}) {
const generatedId = useInstanceId(BoxInputControls, 'box-control-input');
const createHandleOnFocus = side => event => {
onFocus(event, {
side
});
};
const handleOnChange = nextValues => {
onChange(nextValues);
};
const handleOnValueChange = (side, next, extra) => {
const nextValues = {
...values
};
const isNumeric = next !== undefined && !isNaN(parseFloat(next));
const nextValue = isNumeric ? next : undefined;
nextValues[side] = nextValue;
/**
* Supports changing pair sides. For example, holding the ALT key
* when changing the TOP will also update BOTTOM.
*/
// @ts-expect-error - TODO: event.altKey is only present when the change event was
// triggered by a keyboard event. Should this feature be implemented differently so
// it also works with drag events?
if (extra?.event.altKey) {
switch (side) {
case 'top':
nextValues.bottom = nextValue;
break;
case 'bottom':
nextValues.top = nextValue;
break;
case 'left':
nextValues.right = nextValue;
break;
case 'right':
nextValues.left = nextValue;
break;
}
}
handleOnChange(nextValues);
};
const createHandleOnUnitChange = side => next => {
const newUnits = {
...selectedUnits
};
newUnits[side] = next;
setSelectedUnits(newUnits);
};
// Filter sides if custom configuration provided, maintaining default order.
const filteredSides = sides?.length ? ALL_SIDES.filter(side => sides.includes(side)) : ALL_SIDES;
return createElement(Fragment, null, filteredSides.map(side => {
var _CUSTOM_VALUE_SETTING, _CUSTOM_VALUE_SETTING2;
const [parsedQuantity, parsedUnit] = parseQuantityAndUnitFromRawValue(values[side]);
const computedUnit = values[side] ? parsedUnit : selectedUnits[side];
const inputId = [generatedId, side].join('-');
return createElement(InputWrapper, {
key: `box-control-${side}`,
expanded: true
}, createElement(FlexedBoxControlIcon, {
side: side,
sides: sides
}), createElement(Tooltip, {
placement: "top-end",
text: LABELS[side]
}, createElement(StyledUnitControl, {
...props,
__next40pxDefaultSize: __next40pxDefaultSize,
className: "component-box-control__unit-control",
id: inputId,
isPressEnterToChange: true,
value: [parsedQuantity, computedUnit].join(''),
onChange: (nextValue, extra) => handleOnValueChange(side, nextValue, extra),
onUnitChange: createHandleOnUnitChange(side),
onFocus: createHandleOnFocus(side),
label: LABELS[side],
hideLabelFromVision: true
})), createElement(FlexedRangeControl, {
__nextHasNoMarginBottom: true,
__next40pxDefaultSize: __next40pxDefaultSize,
"aria-controls": inputId,
label: LABELS[side],
hideLabelFromVision: true,
onChange: newValue => {
handleOnValueChange(side, newValue !== undefined ? [newValue, computedUnit].join('') : undefined);
},
min: 0,
max: (_CUSTOM_VALUE_SETTING = CUSTOM_VALUE_SETTINGS[computedUnit !== null && computedUnit !== void 0 ? computedUnit : 'px']?.max) !== null && _CUSTOM_VALUE_SETTING !== void 0 ? _CUSTOM_VALUE_SETTING : 10,
step: (_CUSTOM_VALUE_SETTING2 = CUSTOM_VALUE_SETTINGS[computedUnit !== null && computedUnit !== void 0 ? computedUnit : 'px']?.step) !== null && _CUSTOM_VALUE_SETTING2 !== void 0 ? _CUSTOM_VALUE_SETTING2 : 0.1,
value: parsedQuantity !== null && parsedQuantity !== void 0 ? parsedQuantity : 0,
withInputField: false
}));
}));
}
//# sourceMappingURL=input-controls.js.map