mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-02 03:31:05 +05:30
Add event id for BSOD email url
This commit is contained in:
parent
aaad2006ab
commit
993dd4dbb5
@ -1,9 +1,8 @@
|
|||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { FormattedMessage as Message } from 'react-intl';
|
import { FormattedMessage as Message } from 'react-intl';
|
||||||
|
|
||||||
import { IntlProvider } from 'components/i18n';
|
import { IntlProvider } from 'components/i18n';
|
||||||
|
import logger from 'services/logger';
|
||||||
import appInfo from 'components/auth/appInfo/AppInfo.intl.json';
|
import appInfo from 'components/auth/appInfo/AppInfo.intl.json';
|
||||||
|
|
||||||
import styles from './styles.scss';
|
import styles from './styles.scss';
|
||||||
@ -12,7 +11,38 @@ import messages from './BSoD.intl.json';
|
|||||||
|
|
||||||
// TODO: probably it is better to render this view from the App view
|
// TODO: probably it is better to render this view from the App view
|
||||||
// to remove dependencies from store and IntlProvider
|
// to remove dependencies from store and IntlProvider
|
||||||
export default function BSoD({store}: {store: *}) {
|
export default class BSoD extends React.Component<{
|
||||||
|
store: Object
|
||||||
|
}, {
|
||||||
|
lastEventId?: string,
|
||||||
|
}> {
|
||||||
|
state = {};
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
// poll for event id
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
if (!logger.getLastEventId()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
clearInterval(timer);
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
lastEventId: logger.getLastEventId()
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const {store} = this.props;
|
||||||
|
const {lastEventId} = this.state;
|
||||||
|
|
||||||
|
let emailUrl = 'mailto:support@ely.by';
|
||||||
|
|
||||||
|
if (lastEventId) {
|
||||||
|
emailUrl += `?subject=Bug report for #${lastEventId}`;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<IntlProvider store={store}>
|
<IntlProvider store={store}>
|
||||||
<div className={styles.body}>
|
<div className={styles.body}>
|
||||||
@ -30,7 +60,7 @@ export default function BSoD({store}: {store: *}) {
|
|||||||
<div className={styles.line}>
|
<div className={styles.line}>
|
||||||
<Message {...messages.reloadPageOrContactUs} />
|
<Message {...messages.reloadPageOrContactUs} />
|
||||||
</div>
|
</div>
|
||||||
<a href="mailto:support@ely.by" className={styles.support}>
|
<a href={emailUrl} className={styles.support}>
|
||||||
support@ely.by
|
support@ely.by
|
||||||
</a>
|
</a>
|
||||||
<div className={styles.easterEgg}>
|
<div className={styles.easterEgg}>
|
||||||
@ -40,4 +70,5 @@ export default function BSoD({store}: {store: *}) {
|
|||||||
</div>
|
</div>
|
||||||
</IntlProvider>
|
</IntlProvider>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,10 @@ class Logger {
|
|||||||
warn(message: string | Error, context: Object) {
|
warn(message: string | Error, context: Object) {
|
||||||
log('warning', message, context);
|
log('warning', message, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getLastEventId(): string | void {
|
||||||
|
return Raven.lastEventId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function log(
|
function log(
|
||||||
|
Loading…
Reference in New Issue
Block a user