diff --git a/package-lock.json b/package-lock.json index c094a29b5..94db197a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4652,6 +4652,11 @@ } } }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -13068,6 +13073,17 @@ "spin.js": "2.x" } }, + "react-modal": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.7.1.tgz", + "integrity": "sha512-eSgotXkqOCXi0b27AwLCoJ8yqLepKnbZdMp/zfUmZPnMNoe39pDT0mbAPq9rp+TToqM5GUTv8C36Cuja+ThbhA==", + "requires": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^3.0.0" + } + }, "react-router": { "version": "3.2.1", "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", diff --git a/package.json b/package.json index 6c29da182..635b6f183 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "react-intl": "2.7.2", "react-jss": "8.6.1", "react-loader": "2.4.5", + "react-modal": "3.7.1", "react-router": "^3.0.2", "react-sortable-hoc": "0.8.4", "react-tooltip": "3.9.0", diff --git a/src/app.js b/src/app.js index 831dd93ce..6660feb46 100644 --- a/src/app.js +++ b/src/app.js @@ -62,6 +62,7 @@ window.addEventListener('load', () => { menu, touchBar, analytics, + features: {}, render() { const preparedApp = ( diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index dbe0bb4b6..28eaa7fdc 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -6,6 +6,7 @@ import { TitleBar } from 'electron-react-titlebar'; import InfoBar from '../ui/InfoBar'; import { Component as DelayApp } from '../../features/delayApp'; +import { Component as BasicAuth } from '../../features/basicAuth'; import ErrorBoundary from '../util/ErrorBoundary'; import globalMessages from '../../i18n/globalMessages'; @@ -161,6 +162,7 @@ export default @observer class AppLayout extends Component { )} {isDelayAppScreenVisible && ()} + {services} diff --git a/src/components/ui/Modal/index.js b/src/components/ui/Modal/index.js new file mode 100644 index 000000000..d84e4c713 --- /dev/null +++ b/src/components/ui/Modal/index.js @@ -0,0 +1,59 @@ +import React, { Component } from 'react'; +import ReactModal from 'react-modal'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; +import injectCSS from 'react-jss'; + +import styles from './styles'; + +export default @injectCSS(styles) class Modal extends Component { + static propTypes = { + children: PropTypes.node.isRequired, + className: PropTypes.string, + classes: PropTypes.object.isRequired, + isOpen: PropTypes.bool.isRequired, + portal: PropTypes.string, + close: PropTypes.func.isRequired, + } + + static defaultProps = { + className: null, + portal: 'modal-portal', + } + + render() { + const { + children, + className, + classes, + isOpen, + portal, + close, + } = this.props; + + return ( + + {/*