react-web-native-sketch
Version:
[TODO: We need an overview of how this can be used via npm vs as a local package]
71 lines • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var platform_1 = require("../primitives/platform/platform");
var redux_persist_1 = require("redux-persist");
var theme_1 = require("./theme");
var redux_persist_2 = require("redux-persist");
exports.autoRehydrate = redux_persist_2.autoRehydrate;
function isObject(obj) {
return obj && obj instanceof Object && obj.constructor === Object;
}
exports.isObject = isObject;
exports.isXs = function () { return platform_1.getWindowWidth() < theme_1.XS_BREAKING_POINT; };
function getNestedField(obj, fieldNames) {
var currentField = obj;
for (var _i = 0, fieldNames_1 = fieldNames; _i < fieldNames_1.length; _i++) {
var fieldName = fieldNames_1[_i];
if (currentField === null || currentField === undefined) {
return null;
}
currentField = currentField[fieldName];
}
return currentField;
}
exports.getNestedField = getNestedField;
function shallowEqual(a, b) {
return objectsEqual(a, b) && objectsEqual(b, a);
}
exports.shallowEqual = shallowEqual;
function objectsEqual(a, b) {
if (!!a !== !!b) {
return false;
}
for (var key in a) {
if (!(key in b) || a[key] !== b[key]) {
if (isObject(a[key]) && isObject(b[key])) {
if (!shallowEqual(a[key], b[key])) {
return false;
}
}
else if (!Array.isArray(a[key]) && !Array.isArray(b[key]) || !arraysEqual(a[key], b[key])) {
return false;
}
}
}
return true;
}
function arraysEqual(arr1, arr2) {
arr1 = arr1 || [];
arr2 = arr2 || [];
if (arr1.length !== arr2.length)
return false;
for (var i = arr1.length; i--;) {
if (isObject(arr1[i]) && isObject(arr2[i])) {
if (!shallowEqual(arr1[i], arr2[i])) {
return false;
}
}
else if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
exports.getPersistStore = function (store) {
redux_persist_1.persistStore(store, {
storage: platform_1.getStorage(),
whitelist: ['persisted'],
blacklist: ['map'],
});
};
//# sourceMappingURL=common.js.map