From 2fc67d1c9bc2038179771238a0cb5d58995e05c3 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 21 Dec 2018 11:35:00 +0100 Subject: BasicAuth first draft --- src/app.js | 1 + src/components/layout/AppLayout.js | 2 + src/components/ui/Modal/index.js | 59 ++++++++++++++++++ src/components/ui/Modal/styles.js | 32 ++++++++++ src/electron/ipc-api/settings.js | 1 - src/features/basicAuth/Component.js | 102 +++++++++++++++++++++++++++++++ src/features/basicAuth/Form.js | 17 ++++++ src/features/basicAuth/index.js | 68 +++++++++++++++++++++ src/features/basicAuth/mainIpcHandler.js | 9 +++ src/features/basicAuth/styles.js | 12 ++++ src/index.js | 39 ++++++++++-- src/stores/FeaturesStore.js | 2 + src/theme/dark/index.js | 3 + src/theme/default/index.js | 3 + 14 files changed, 343 insertions(+), 7 deletions(-) create mode 100644 src/components/ui/Modal/index.js create mode 100644 src/components/ui/Modal/styles.js create mode 100644 src/features/basicAuth/Component.js create mode 100644 src/features/basicAuth/Form.js create mode 100644 src/features/basicAuth/index.js create mode 100644 src/features/basicAuth/mainIpcHandler.js create mode 100644 src/features/basicAuth/styles.js (limited to 'src') 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 ( + + {/*