UNPKG

reactors

Version:

View components and APIs that work web, mobile and desktop!

124 lines (101 loc) 2.86 kB
'use strict'; 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;