UNPKG

ndla-ui

Version:

UI component library for NDLA.

41 lines (31 loc) 1.22 kB
'use strict'; 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)); }