UNPKG

@modern-kit/react

Version:
18 lines (15 loc) 605 B
import { useState, useEffect } from 'react'; import { usePreservedCallback } from '../usePreservedCallback/index.mjs'; import { isEqual } from '@modern-kit/utils'; function usePreservedState(value, comparator = isEqual) { const [preservedState, setPreservedState] = useState(value); const callbackComparator = usePreservedCallback(comparator); useEffect(() => { if (!callbackComparator(preservedState, value)) { setPreservedState(value); } }, [callbackComparator, preservedState, value]); return preservedState; } export { usePreservedState }; //# sourceMappingURL=index.mjs.map