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>
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
import { createElement, Fragment } from "react";
|
|
/**
|
|
* WordPress dependencies
|
|
*/
|
|
import { __ } from '@wordpress/i18n';
|
|
import { useCallback, memo } from '@wordpress/element';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { RangeControl, SelectControl } from '../';
|
|
import CategorySelect from './category-select';
|
|
const DEFAULT_MIN_ITEMS = 1;
|
|
const DEFAULT_MAX_ITEMS = 100;
|
|
const options = [{
|
|
label: __('Newest to oldest'),
|
|
value: 'date/desc'
|
|
}, {
|
|
label: __('Oldest to newest'),
|
|
value: 'date/asc'
|
|
}, {
|
|
/* translators: label for ordering posts by title in ascending order */
|
|
label: __('A → Z'),
|
|
value: 'title/asc'
|
|
}, {
|
|
/* translators: label for ordering posts by title in descending order */
|
|
label: __('Z → A'),
|
|
value: 'title/desc'
|
|
}];
|
|
const QueryControls = memo(({
|
|
categoriesList,
|
|
selectedCategoryId,
|
|
numberOfItems,
|
|
order,
|
|
orderBy,
|
|
maxItems = DEFAULT_MAX_ITEMS,
|
|
minItems = DEFAULT_MIN_ITEMS,
|
|
onCategoryChange,
|
|
onNumberOfItemsChange,
|
|
onOrderChange,
|
|
onOrderByChange
|
|
}) => {
|
|
const onChange = useCallback(value => {
|
|
const [newOrderBy, newOrder] = value.split('/');
|
|
if (newOrder !== order) {
|
|
onOrderChange(newOrder);
|
|
}
|
|
if (newOrderBy !== orderBy) {
|
|
onOrderByChange(newOrderBy);
|
|
}
|
|
}, [order, orderBy, onOrderByChange, onOrderChange]);
|
|
return createElement(Fragment, null, onOrderChange && onOrderByChange && createElement(SelectControl, {
|
|
label: __('Order by'),
|
|
value: `${orderBy}/${order}`,
|
|
options: options,
|
|
onChange: onChange,
|
|
hideCancelButton: true
|
|
}), onCategoryChange && createElement(CategorySelect, {
|
|
categoriesList: categoriesList,
|
|
label: __('Category'),
|
|
noOptionLabel: __('All'),
|
|
selectedCategoryId: selectedCategoryId,
|
|
onChange: onCategoryChange,
|
|
hideCancelButton: true
|
|
}), onNumberOfItemsChange && createElement(RangeControl, {
|
|
__next40pxDefaultSize: true,
|
|
label: __('Number of items'),
|
|
value: numberOfItems,
|
|
onChange: onNumberOfItemsChange,
|
|
min: minItems,
|
|
max: maxItems,
|
|
required: true
|
|
}));
|
|
});
|
|
export default QueryControls;
|
|
//# sourceMappingURL=index.native.js.map
|