1
0
Fork 0
react-playground/node_modules/@emotion/use-insertion-effect-with-fallbacks/src/index.ts

21 lines
637 B
TypeScript

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