ndla-ui
Version:
UI component library for NDLA.
41 lines (31 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createUniversalPortal = createUniversalPortal;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Copyright (c) 2016-present, NDLA.
*
* This source code is licensed under the GPLv3 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
// N.B This helper is intended to be used in https://github.com/ndlano/article-converter. It is not a general soultion for using portals in SSR applications.
function canUseDOM() {
return !!(typeof window !== 'undefined' && window.document && window.document.createElement && !window.document.hidden); // window.document.hidden === jsdom check
}
function createUniversalPortal(children, selector) {
if (!canUseDOM()) {
return _react2.default.createElement(
'div',
{ 'data-react-universal-portal': true },
children
);
}
return _reactDom2.default.createPortal(children, document.querySelector(selector));
}