useDeepEqualState hook implemented

This commit is contained in:
NikolaBorislavovHristov 2019-12-05 13:30:16 +02:00
parent a597e00aba
commit b4f5477678
2 changed files with 15 additions and 0 deletions

View file

@ -18,6 +18,7 @@ const TextInput = require('./TextInput');
const routesRegexp = require('./routesRegexp');
const useAnimationFrame = require('./useAnimationFrame');
const useBinaryState = require('./useBinaryState');
const useDeepEqualState = require('./useDeepEqualState');
const useFullscreen = require('./useFullscreen');
const useInLibrary = require('./useInLibrary');
const useLiveRef = require('./useLiveRef');
@ -47,6 +48,7 @@ module.exports = {
routesRegexp,
useAnimationFrame,
useBinaryState,
useDeepEqualState,
useFullscreen,
useInLibrary,
useLiveRef,

View file

@ -0,0 +1,13 @@
const React = require('react');
const isEqual = require('lodash.isequal');
const useDeepEqualState = (initialState) => {
return React.useReducer((prevState, nextState) => {
return isEqual(prevState, nextState) ?
prevState
:
nextState;
}, initialState);
};
module.exports = useDeepEqualState;