accounts-frontend/src/pages/auth/SuccessOauthPage.js

80 lines
2.2 KiB
JavaScript
Raw Normal View History

// @flow
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import { FormattedMessage as Message } from 'react-intl';
import Helmet from 'react-helmet';
import loader from 'services/loader';
import rootMessages from 'pages/root/RootPage.intl.json';
import styles from './success-oauth.scss';
import messages from './SuccessOauthPage.intl.json';
import type { Query } from 'services/request';
2017-08-23 02:01:41 +05:30
export default class SuccessOauthPage extends Component<{
location: {
query: Query<'appName'>
}
}> {
componentDidMount() {
this.onPageUpdate();
setTimeout(() => {
try {
// try to close window if possible
window.open('', '_self').close();
} catch (err) {
// don't care
}
}, 8000);
}
componentDidUpdate() {
this.onPageUpdate();
}
onPageUpdate() {
loader.hide();
}
render() {
const appName = this.props.location.query.get('appName');
return (
<div className={styles.page}>
<Message {...messages.title}>
{(pageTitle) => (
<Helmet title={pageTitle}/>
)}
</Message>
<div className={styles.wrapper}>
<Link to="/" className={styles.logo}>
<Message {...rootMessages.siteName} />
</Link>
<div className={styles.title}>
<Message {...messages.applicationAuth} />
</div>
<div className={styles.checkmark} />
<div className={styles.description}>
{appName ? (
<Message {...messages.authorizationForAppSuccessful} values={{
appName: <b>{appName}</b>
}} />
) : (
<Message {...messages.authorizationSuccessful} />
)}
&nbsp;
<Message {...messages.youCanCloseThisPage} />
</div>
</div>
</div>
);
}
}