UNPKG

curls

Version:

💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion

42 lines (40 loc) • 1.19 kB
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) } import React from 'react' import Portalize from 'react-portalize' import emptyObj from 'empty/object' import {ThemeConsumer} from '@style-hooks/core' import {ThemeProvider} from '../ThemeProvider' export 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.createElement(ThemeConsumer, emptyObj, theme => { const themeProvider = { provider: ThemeProvider, value: theme, } props.providers = props.providers === void 0 ? [themeProvider] : [themeProvider, ...props.providers] return React.createElement(Portalize, props) }) }