Skip to content

Commit ae4e500

Browse files
committed
fix(blade): fallback for useInsertionEffect
1 parent 2da77e4 commit ae4e500

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

packages/blade/src/utils/useCallbackRef.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
/* eslint-disable @typescript-eslint/explicit-function-return-type */
22
import { useCallback, useInsertionEffect, useRef } from 'react';
3+
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
4+
5+
const useInsertionEffectFallback = useInsertionEffect || useIsomorphicLayoutEffect;
36

47
/**
58
* This hook is user-land implementation of the experimental `useEffectEvent` hook.
@@ -11,11 +14,9 @@ function useCallbackRef<Args extends unknown[], Return>(
1114
callback: ((...args: Args) => Return) | undefined,
1215
deps: React.DependencyList = [],
1316
) {
14-
const callbackRef = useRef<typeof callback>(() => {
15-
throw new Error('Cannot call an event handler while rendering.');
16-
});
17+
const callbackRef = useRef<typeof callback>(callback);
1718

18-
useInsertionEffect(() => {
19+
useInsertionEffectFallback(() => {
1920
callbackRef.current = callback;
2021
});
2122

0 commit comments

Comments
 (0)