import classnames from 'classnames'; import { noop } from 'lodash'; import { observer } from 'mobx-react'; import { Component, type FormEvent, type ReactElement } from 'react'; import { type WrappedComponentProps, defineMessages, injectIntl, } from 'react-intl'; import injectSheet, { type WithStylesProps } from 'react-jss'; import Modal from '../../components/ui/Modal'; import Button from '../../components/ui/button'; import { H1 } from '../../components/ui/headline'; import Input from '../../components/ui/input/index'; import globalMessages from '../../i18n/globalMessages'; import Form from './Form'; import { cancelLogin, resetState, sendCredentials, state } from './store'; import styles from './styles'; 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), );