reactors
Version:
View components and APIs that work web, mobile and desktop!
124 lines (101 loc) • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _includes = require('lodash/includes');
var _includes2 = _interopRequireDefault(_includes);
var _guessPlatform = require('./guessPlatform');
var _guessPlatform2 = _interopRequireDefault(_guessPlatform);
var _props = require('./props');
var _props2 = _interopRequireDefault(_props);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if (typeof __DEV__ === 'undefined') {
global.__DEV__ = process.env.NODE_ENV !== 'production';
} /**
* @module reactors
*
**/
var Reactors = function Reactors() {
(0, _classCallCheck3.default)(this, Reactors);
};
// mergeStyles(...styles: any[]) {
// if (this.isMobile()) {
// const merged = [];
//
// for (const style of styles) {
// if (Array.isArray(style)) {
// merged.push(...style);
// } else if (style && typeof style === 'object') {
// // List style (from StyleSheet.create)
// if (style[0]) {
// merged.push(...Array.from(style));
// } else {
// merged.push(style);
// }
// }
// }
//
// return merged;
// }
//
// let merged = {};
//
// for (const style of styles) {
// if (Array.isArray(style)) {
// for (const item of style) {
// merged = {...merged, item};
// }
// } else if (style && typeof style === 'object') {
// // List style (from StyleSheet.create)
// if (style[0]) {
// const arr = Array.from(style);
//
// for (const item of arr) {
// merged = {...merged, item};
// }
// } else {
// merged = {...merged, ...style};
// }
// }
// }
//
// return merged;
// }
Reactors.platform = (0, _guessPlatform2.default)();
Reactors.getOS = function () {
if (Reactors.platform === 'mobile') {
var RN = require('react-native');
return RN.Platform;
}
return { OS: Reactors.platform };
};
Reactors.isAndroid = function () {
if (!Reactors.isMobile()) {
return false;
}
var RN = require('react-native');
return RN.Platform.OS === 'android';
};
Reactors.isDesktop = function () {
return Reactors.platform === 'desktop';
};
Reactors.isDOM = function () {
return (0, _includes2.default)(['desktop', 'web'], Reactors.platform);
};
Reactors.isiOS = function () {
if (!Reactors.isMobile()) {
return false;
}
var RN = require('react-native');
return RN.Platform.OS === 'ios';
};
Reactors.isMobile = function () {
return Reactors.platform === 'mobile';
};
Reactors.isWeb = function () {
return Reactors.platform === 'web';
};
Reactors.props = _props2.default;
exports.default = Reactors;