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

46
node_modules/@wordpress/data/src/utils/emitter.js generated vendored Normal file
View File

@@ -0,0 +1,46 @@
/**
* Create an event emitter.
*
* @return {import("../types").DataEmitter} Emitter.
*/
export function createEmitter() {
let isPaused = false;
let isPending = false;
const listeners = new Set();
const notifyListeners = () =>
// We use Array.from to clone the listeners Set
// This ensures that we don't run a listener
// that was added as a response to another listener.
Array.from( listeners ).forEach( ( listener ) => listener() );
return {
get isPaused() {
return isPaused;
},
subscribe( listener ) {
listeners.add( listener );
return () => listeners.delete( listener );
},
pause() {
isPaused = true;
},
resume() {
isPaused = false;
if ( isPending ) {
isPending = false;
notifyListeners();
}
},
emit() {
if ( isPaused ) {
isPending = true;
return;
}
notifyListeners();
},
};
}