import { Component, FormEvent, ReactElement } from 'react'; import injectSheet, { WithStylesProps } from 'react-jss'; import { observer } from 'mobx-react'; import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; import classnames from 'classnames'; import { noop } from 'lodash'; import Modal from '../../components/ui/Modal'; import Input from '../../components/ui/input/index'; import Button from '../../components/ui/button'; import { state, resetState, sendCredentials, cancelLogin } from './store'; import Form from './Form'; import styles from './styles'; import globalMessages from '../../i18n/globalMessages'; import { H1 } from '../../components/ui/headline'; const messages = defineMessages({ signIn: { id: 'feature.basicAuth.signIn', defaultMessage: 'Sign In', }, }); interface IProps extends WithStylesProps, WrappedComponentProps {} @observer class BasicAuthModal extends Component { submit(e: FormEvent): void { e.preventDefault(); const values = Form.values(); sendCredentials(values.user, values.password); resetState(); } cancel(): void { cancelLogin(); this.close(); } close(): void { resetState(); state.isModalVisible = false; } render(): ReactElement | null { const { classes } = this.props; const { isModalVisible, authInfo } = state; if (!authInfo) { return null; } const { intl } = this.props; return (

{intl.formatMessage(messages.signIn)}

http {authInfo.port === 443 && 's'} :// {authInfo.host}

); } } export default injectIntl( injectSheet(styles, { injectTheme: true })(BasicAuthModal), );