mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-21 07:32:02 +00:00
useDeepEqualState hook implemented
This commit is contained in:
parent
a597e00aba
commit
b4f5477678
2 changed files with 15 additions and 0 deletions
|
|
@ -18,6 +18,7 @@ const TextInput = require('./TextInput');
|
||||||
const routesRegexp = require('./routesRegexp');
|
const routesRegexp = require('./routesRegexp');
|
||||||
const useAnimationFrame = require('./useAnimationFrame');
|
const useAnimationFrame = require('./useAnimationFrame');
|
||||||
const useBinaryState = require('./useBinaryState');
|
const useBinaryState = require('./useBinaryState');
|
||||||
|
const useDeepEqualState = require('./useDeepEqualState');
|
||||||
const useFullscreen = require('./useFullscreen');
|
const useFullscreen = require('./useFullscreen');
|
||||||
const useInLibrary = require('./useInLibrary');
|
const useInLibrary = require('./useInLibrary');
|
||||||
const useLiveRef = require('./useLiveRef');
|
const useLiveRef = require('./useLiveRef');
|
||||||
|
|
@ -47,6 +48,7 @@ module.exports = {
|
||||||
routesRegexp,
|
routesRegexp,
|
||||||
useAnimationFrame,
|
useAnimationFrame,
|
||||||
useBinaryState,
|
useBinaryState,
|
||||||
|
useDeepEqualState,
|
||||||
useFullscreen,
|
useFullscreen,
|
||||||
useInLibrary,
|
useInLibrary,
|
||||||
useLiveRef,
|
useLiveRef,
|
||||||
|
|
|
||||||
13
src/common/useDeepEqualState.js
Normal file
13
src/common/useDeepEqualState.js
Normal 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;
|
||||||
Loading…
Reference in a new issue