Blame view

天文台pc/tianwentai-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/src/index.ts 637 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  import * as React from 'react'
  import isBrowser from '#is-browser'
  
  const syncFallback = <T>(create: () => T) => create()
  
  const useInsertionEffect = React[
    ('useInsertion' + 'Effect') as 'useInsertionEffect'
  ]
    ? (React[('useInsertion' + 'Effect') as 'useInsertionEffect'] as <T>(
        create: () => T
      ) => T | undefined)
    : false
  
  export const useInsertionEffectAlwaysWithSyncFallback: <T>(
    create: () => T
  ) => T | undefined = !isBrowser
    ? syncFallback
    : useInsertionEffect || syncFallback
  
  export const useInsertionEffectWithLayoutFallback: typeof React.useLayoutEffect =
    useInsertionEffect || React.useLayoutEffect