Blame view

天文台pc/tianwentai-ui/node_modules/framer-motion/dist/es/utils/use-force-update.mjs 783 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  "use client";
  import { frame } from 'motion-dom';
  import { useState, useCallback } from 'react';
  import { useIsMounted } from './use-is-mounted.mjs';
  
  function useForceUpdate() {
      const isMounted = useIsMounted();
      const [forcedRenderCount, setForcedRenderCount] = useState(0);
      const forceRender = useCallback(() => {
          isMounted.current && setForcedRenderCount(forcedRenderCount + 1);
      }, [forcedRenderCount]);
      /**
       * Defer this to the end of the next animation frame in case there are multiple
       * synchronous calls.
       */
      const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);
      return [deferredForceRender, forcedRenderCount];
  }
  
  export { useForceUpdate };
  //# sourceMappingURL=use-force-update.mjs.map