Skip to content

Commit e08e942

Browse files
committed
Better ESLint hack
1 parent bd523b4 commit e08e942

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

packages/component/src/providers/ClipboardWritePermissionWithStable/private/useStableStateHook.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,18 @@ export default function useStableStateHook<T>(
2525
useEffect(() => propagate(value), [propagate, value]);
2626

2727
// One-off variable to hack around ESLint rules without disabling react-hooks/rules-of-hooks.
28-
const useHook = () => {
29-
const [propagatedValue, setPropagatedValue] = useState<T>(valueRef.current);
28+
const _useListen = useListen;
29+
const _useMemo = useMemo;
30+
const _useState = useState;
3031

31-
useListen(setPropagatedValue);
32+
return useCallback(() => {
33+
const [propagatedValue, setPropagatedValue] = _useState<T>(valueRef.current);
3234

33-
return useMemo(
35+
_useListen(setPropagatedValue);
36+
37+
return _useMemo(
3438
() => Object.freeze(setValue ? ([propagatedValue, setValue] as const) : ([propagatedValue] as const)),
35-
// eslint-disable-next-line react-hooks/exhaustive-deps
3639
[propagatedValue, setValue]
3740
);
38-
};
39-
40-
return useCallback(useHook, [useListen, setValue, valueRef]);
41+
}, [_useMemo, _useListen, _useState, setValue, valueRef]);
4142
}

0 commit comments

Comments
 (0)