@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
52 lines (39 loc) • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Device = undefined;
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _useMedia = require("use-media");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _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; }; return _extends.apply(this, arguments); }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var Device = exports.Device = undefined;
(function (Device) {
Device["phone"] = "phone";
Device["tablet"] = "tablet";
Device["desktop"] = "desktop";
})(Device || (exports.Device = Device = {}));
var withDevice = function withDevice(Component) {
function WithDevice(_ref) {
var customDevice = _ref.device,
customIsMobile = _ref.isMobile,
props = _objectWithoutPropertiesLoose(_ref, ["device", "isMobile"]);
// Taken at https://github.com/vtex-apps/device-detector/blob/master/react/useDevice.tsx#L22
var isScreenMedium = (0, _useMedia.useMedia)({
minWidth: '40rem'
});
var isScreenLarge = (0, _useMedia.useMedia)({
minWidth: '64.1rem'
});
var device = (customDevice != null ? customDevice : isScreenLarge) ? Device.desktop : isScreenMedium ? Device.tablet : Device.phone;
var isMobile = customIsMobile != null ? customIsMobile : device.toLowerCase() === 'phone';
return _react2.default.createElement(Component, _extends({
device: device,
isMobile: isMobile
}, props));
}
return WithDevice;
};
exports.default = withDevice;