UNPKG

368 BPlain TextView Raw
1import { useEffect, useRef } from 'react'
2import { shallowEqual } from 'react-redux'
3
4export function useShallowStableValue<T>(value: T) {
5 const cache = useRef(value)
6 useEffect(() => {
7 if (!shallowEqual(cache.current, value)) {
8 cache.current = value
9 }
10 }, [value])
11
12 return shallowEqual(cache.current, value) ? cache.current : value
13}