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>
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
import { animationControls } from './animation-controls.mjs';
|
|
import { useConstant } from '../../utils/use-constant.mjs';
|
|
import { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';
|
|
|
|
/**
|
|
* Creates `AnimationControls`, which can be used to manually start, stop
|
|
* and sequence animations on one or more components.
|
|
*
|
|
* The returned `AnimationControls` should be passed to the `animate` property
|
|
* of the components you want to animate.
|
|
*
|
|
* These components can then be animated with the `start` method.
|
|
*
|
|
* ```jsx
|
|
* import * as React from 'react'
|
|
* import { motion, useAnimation } from 'framer-motion'
|
|
*
|
|
* export function MyComponent(props) {
|
|
* const controls = useAnimation()
|
|
*
|
|
* controls.start({
|
|
* x: 100,
|
|
* transition: { duration: 0.5 },
|
|
* })
|
|
*
|
|
* return <motion.div animate={controls} />
|
|
* }
|
|
* ```
|
|
*
|
|
* @returns Animation controller with `start` and `stop` methods
|
|
*
|
|
* @public
|
|
*/
|
|
function useAnimationControls() {
|
|
const controls = useConstant(animationControls);
|
|
useIsomorphicLayoutEffect(controls.mount, []);
|
|
return controls;
|
|
}
|
|
const useAnimation = useAnimationControls;
|
|
|
|
export { useAnimation, useAnimationControls };
|