1 | import { useEffect, useRef } from 'react'
|
2 | import { shallowEqual } from 'react-redux'
|
3 |
|
4 | export 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 | }
|