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>
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
/**
|
|
* WordPress dependencies
|
|
*/
|
|
import { addQueryArgs, getQueryArg, removeQueryArgs } from '@wordpress/url';
|
|
|
|
/**
|
|
* This appends a `wp_theme_preview` parameter to the REST API request URL if
|
|
* the admin URL contains a `theme` GET parameter.
|
|
*
|
|
* If the REST API request URL has contained the `wp_theme_preview` parameter as `''`,
|
|
* then bypass this middleware.
|
|
*
|
|
* @param {Record<string, any>} themePath
|
|
* @return {import('../types').APIFetchMiddleware} Preloading middleware.
|
|
*/
|
|
const createThemePreviewMiddleware = themePath => (options, next) => {
|
|
if (typeof options.url === 'string') {
|
|
const wpThemePreview = getQueryArg(options.url, 'wp_theme_preview');
|
|
if (wpThemePreview === undefined) {
|
|
options.url = addQueryArgs(options.url, {
|
|
wp_theme_preview: themePath
|
|
});
|
|
} else if (wpThemePreview === '') {
|
|
options.url = removeQueryArgs(options.url, 'wp_theme_preview');
|
|
}
|
|
}
|
|
if (typeof options.path === 'string') {
|
|
const wpThemePreview = getQueryArg(options.path, 'wp_theme_preview');
|
|
if (wpThemePreview === undefined) {
|
|
options.path = addQueryArgs(options.path, {
|
|
wp_theme_preview: themePath
|
|
});
|
|
} else if (wpThemePreview === '') {
|
|
options.path = removeQueryArgs(options.path, 'wp_theme_preview');
|
|
}
|
|
}
|
|
return next(options);
|
|
};
|
|
export default createThemePreviewMiddleware;
|
|
//# sourceMappingURL=theme-preview.js.map
|