Skip to content

Commit 24d3c10

Browse files
committed
Add utils folder
1 parent dc84869 commit 24d3c10

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

src/addons/dispatch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import Dispatcher from '../Dispatcher';
3-
import getDisplayName from './getDisplayName';
3+
import getDisplayName from '../utils/getDisplayName';
44

55
export default function dispatch(store) {
66
return DecoratedComponent => class DispatcherDecorator {

src/addons/inject.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import Injector from '../Injector';
3-
import getDisplayName from './getDisplayName';
3+
import getDisplayName from '../utils/getDisplayName';
44

55
function mergeAll({ props, atom, actions }) {
66
return { ...props, ...atom, ...actions };
File renamed without changes.

src/utils/shallowEqual.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
export default function shallowEqual(objA, objB) {
2+
if (objA === objB) {
3+
return true;
4+
}
5+
6+
var keysA = Object.keys(objA);
7+
var keysB = Object.keys(objB);
8+
9+
if (keysA.length !== keysB.length) {
10+
return false;
11+
}
12+
13+
// Test for A's keys different from B.
14+
var hasOwn = Object.prototype.hasOwnProperty;
15+
for (var i = 0; i < keysA.length; i++) {
16+
if (!hasOwn.call(objB, keysA[i]) ||
17+
objA[keysA[i]] !== objB[keysA[i]]) {
18+
19+
return false;
20+
}
21+
22+
var valA = objA[keysA[i]];
23+
var valB = objB[keysA[i]];
24+
25+
if (valA !== valB) {
26+
return false;
27+
}
28+
}
29+
30+
return true;
31+
}

src/utils/shallowEqualScalar.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
export default function shallowEqualScalar(objA, objB) {
2+
if (objA === objB) {
3+
return true;
4+
}
5+
6+
if (typeof objA !== 'object' || objA === null ||
7+
typeof objB !== 'object' || objB === null) {
8+
return false;
9+
}
10+
11+
var keysA = Object.keys(objA);
12+
var keysB = Object.keys(objB);
13+
14+
if (keysA.length !== keysB.length) {
15+
return false;
16+
}
17+
18+
// Test for A's keys different from B.
19+
var hasOwn = Object.prototype.hasOwnProperty;
20+
for (var i = 0; i < keysA.length; i++) {
21+
if (!hasOwn.call(objB, keysA[i])) {
22+
return false;
23+
}
24+
25+
var valA = objA[keysA[i]];
26+
var valB = objB[keysA[i]];
27+
28+
if (valA !== valB || typeof valA === 'object' || typeof valB === 'object') {
29+
return false;
30+
}
31+
}
32+
33+
return true;
34+
}

0 commit comments

Comments
 (0)