UNPKG

sc-react-ions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

71 lines (50 loc) 2.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _InlineStylePrefixer = require('../internal/InlineStylePrefixer'); var _InlineStylePrefixer2 = _interopRequireDefault(_InlineStylePrefixer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Overlay = function Overlay(props) { var getStyles = function getStyles() { var style = { position: 'fixed', height: '100%', width: '100%', top: 0, left: '-100%', opacity: 0, backgroundColor: 'rgba(0, 0, 0, 0.6)', WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)', // Remove mobile color flashing (deprecated) willChange: 'opacity', transform: 'translateZ(0)', zIndex: -1, transition: 'left 0ms, opacity 0.3s' }; document.body.style.removeProperty('overflow'); if (props.show) { document.body.style.overflow = 'hidden'; style.left = 0; style.opacity = 0.6; style.transition = 'left 0ms, opacity 0.3s'; } return (0, _InlineStylePrefixer2.default)(style); }; var style = getStyles(); var show = props.show, other = _objectWithoutProperties(props, ['show']); return _react2.default.createElement('div', _extends({}, other, { style: style })); }; Overlay.propTypes = { show: _propTypes2.default.bool.isRequired }; Overlay.defaultProps = { show: false }; exports.default = Overlay;