curls
Version:
💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion
62 lines (51 loc) • 1.56 kB
JavaScript
exports.__esModule = true
exports.default = void 0
var _react = _interopRequireDefault(require('react'))
var _reactPortalize = _interopRequireDefault(require('react-portalize'))
var _object = _interopRequireDefault(require('empty/object'))
var _core = require('@style-hooks/core')
var _ThemeProvider = require('../ThemeProvider')
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)
}
var _default = (Component, portal) => {
if (portal === false || portal === void 0 || portal === null) return Component
const props = {
children: Component,
}
if (typeof portal === 'string') props.container = portal
else _extends(props, portal)
return _react.default.createElement(
_core.ThemeConsumer,
_object.default,
theme => {
const themeProvider = {
provider: _ThemeProvider.ThemeProvider,
value: theme,
}
props.providers =
props.providers === void 0
? [themeProvider]
: [themeProvider, ...props.providers]
return _react.default.createElement(_reactPortalize.default, props)
}
)
}
exports.default = _default