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>
ScrollLock
ScrollLock is a content-free React component for declaratively preventing scroll bleed from modal UI to the page body. This component applies a lockscroll class to the document.documentElement and document.scrollingElement elements to stop the body from scrolling. When it is present, the lock is applied.
Usage
Declare scroll locking as part of modal UI.
import { useState } from 'react';
import { ScrollLock, Button } from '@wordpress/components';
const MyScrollLock = () => {
const [ isScrollLocked, setIsScrollLocked ] = useState( false );
const toggleLock = () => {
setIsScrollLocked( ( locked ) => ! locked ) );
};
return (
<div>
<Button variant="secondary" onClick={ toggleLock }>
Toggle scroll lock
</Button>
{ isScrollLocked && <ScrollLock /> }
<p>
Scroll locked:
<strong>{ isScrollLocked ? 'Yes' : 'No' }</strong>
</p>
</div>
);
};