@@ -3,8 +3,19 @@ exports.__esModule = true;
3
3
exports . newStore = void 0 ;
4
4
//@ts -check
5
5
var react_1 = require ( "react" ) ;
6
- var isEqual = require ( "lodash.isequal" ) ;
7
- var cloneDeep = require ( "lodash.clonedeep" ) ;
6
+ function cloneDeep ( obj ) {
7
+ return JSON . parse ( JSON . stringify ( obj ) ) ;
8
+ }
9
+ function isEqual ( a , b ) {
10
+ if ( typeof a != typeof b ) {
11
+ return false ;
12
+ }
13
+ if ( typeof a == 'object' && typeof b == 'object' ) {
14
+ if ( Object . keys ( a ) . length != Object . keys ( b ) . length )
15
+ return false ;
16
+ }
17
+ return JSON . stringify ( a ) == JSON . stringify ( b ) ;
18
+ }
8
19
function newStore ( state ) {
9
20
//@ts -ignore
10
21
var Store = state ;
@@ -28,11 +39,12 @@ function newStore(state) {
28
39
* @param callback {(store:Store)=>void}
29
40
*/
30
41
Store . useRerenderIfChange = function ( callback ) {
31
- var _a = react_1 . useState ( 0 ) , _ = _a [ 0 ] , setMeToRerender = _a [ 1 ] ;
32
- var callbacksKeyRef = react_1 . useRef ( callbacksNextAvailableKey ++ ) ;
42
+ var _a = ( 0 , react_1 . useState ) ( 0 ) , _ = _a [ 0 ] , setMeToRerender = _a [ 1 ] ;
43
+ var callbacksKeyRef = ( 0 , react_1 . useRef ) ( callbacksNextAvailableKey ++ ) ;
33
44
/** The array from the user. Cloned so new changes will not be there */
34
- var lastValueRef = react_1 . useRef ( cloneDeep ( callback ( Store ) ) ) ;
35
- react_1 . useEffect ( function ( ) {
45
+ var cloned = ( 0 , react_1 . useCallback ) ( function ( ) { return cloneDeep ( callback ( Store ) ) ; } ) ;
46
+ var lastValueRef = ( 0 , react_1 . useRef ) ( cloned ) ;
47
+ ( 0 , react_1 . useEffect ) ( function ( ) {
36
48
// When object mount, add a function to the callbacks, to change if the value changes
37
49
// it will trigged by the "updateStore below"
38
50
callbacks [ callbacksKeyRef . current ] = function ( ) {
0 commit comments