// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. // Copyright (c) 2015-2016 Yuya Ochiai import React from 'react'; import {Button, Col, ControlLabel, Form, FormGroup, FormControl, Modal} from 'react-bootstrap'; import {LoginModalData} from 'types/auth'; import {ModalMessage} from 'types/modals'; import {AuthenticationResponseDetails, AuthInfo} from 'electron/renderer'; import urlUtils from 'common/utils/url'; import {MODAL_INFO} from 'common/communication'; type Props = { onCancel: (request: AuthenticationResponseDetails) => void; onLogin: (request: AuthenticationResponseDetails, username: string, password: string) => void; getAuthInfo: () => void; }; type State = { username: string; password: string; request?: AuthenticationResponseDetails; authInfo?: AuthInfo; }; export default class LoginModal extends React.PureComponent { constructor(props: Props) { super(props); this.state = { username: '', password: '', }; } componentDidMount() { window.addEventListener('message', this.handleAuthInfoMessage); this.props.getAuthInfo(); } componentWillUnmount() { window.removeEventListener('message', this.handleAuthInfoMessage); } handleAuthInfoMessage = (event: {data: ModalMessage}) => { switch (event.data.type) { case MODAL_INFO: { const {request, authInfo} = event.data.data; this.setState({request, authInfo}); break; } default: break; } } handleSubmit = (event: React.MouseEvent { ' ' } ); } }