UNPKG

react-native-web-headroom

Version:
152 lines (131 loc) 3.84 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _createStyles = require('../styles/createStyles'); var _createStyles2 = _interopRequireDefault(_createStyles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * A short description of the object values. * Can be used to render tree node in ObjectInspector * or render objects in TableInspector. */ var ObjectValue = function ObjectValue(_ref, _ref2) { var object = _ref.object, styles = _ref.styles; var theme = _ref2.theme; var themeStyles = (0, _createStyles2.default)('ObjectValue', theme); var mkStyle = function mkStyle(key) { return (0, _extends3.default)({}, themeStyles[key], styles); }; switch (typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object)) { case 'number': return _react2.default.createElement( 'span', { style: mkStyle('objectValueNumber') }, String(object) ); case 'string': return _react2.default.createElement( 'span', { style: mkStyle('objectValueString') }, '"', object, '"' ); case 'boolean': return _react2.default.createElement( 'span', { style: mkStyle('objectValueBoolean') }, String(object) ); case 'undefined': return _react2.default.createElement( 'span', { style: mkStyle('objectValueUndefined') }, 'undefined' ); case 'object': if (object === null) { return _react2.default.createElement( 'span', { style: mkStyle('objectValueNull') }, 'null' ); } if (object instanceof Date) { return _react2.default.createElement( 'span', null, object.toString() ); } if (object instanceof RegExp) { return _react2.default.createElement( 'span', { style: mkStyle('objectValueRegExp') }, object.toString() ); } if (Array.isArray(object)) { return _react2.default.createElement( 'span', null, 'Array[' + object.length + ']' ); } if (!object.constructor) { return _react2.default.createElement( 'span', null, 'Object' ); } return _react2.default.createElement( 'span', null, object.constructor.name ); case 'function': return _react2.default.createElement( 'span', null, _react2.default.createElement( 'span', { style: mkStyle('objectValueFunctionKeyword') }, 'function' ), _react2.default.createElement( 'span', { style: mkStyle('objectValueFunctionName') }, '\xA0', object.name, '()' ) ); case 'symbol': return _react2.default.createElement( 'span', { style: mkStyle('objectValueSymbol') }, object.toString() ); default: return _react2.default.createElement('span', null); } }; ObjectValue.propTypes = { /** the object to describe */ object: _propTypes2.default.any }; ObjectValue.contextTypes = { theme: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]) }; exports.default = ObjectValue;