mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-23 10:30:04 +01:00
e067379f48
The beta build currently has a couple of UI elements (the horizontal logo and the app header) set to "dark mode", even though nothing else in our UI supports dark mode yet. These styles have been removed. We should make the entire UI support dark mode all at once at a later date. Also the horizontal logo used for beta was named incorrectly; the dark and non-dark logos were swapped. They have been switched back so that the logo that ends with `-dark` is for dark mode.
137 lines
4.0 KiB
JavaScript
137 lines
4.0 KiB
JavaScript
import React, { PureComponent } from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import Button from '../../../components/ui/button';
|
|
import Snackbar from '../../../components/ui/snackbar';
|
|
import MetaFoxLogo from '../../../components/ui/metafox-logo';
|
|
import { DEFAULT_ROUTE } from '../../../helpers/constants/routes';
|
|
import { returnToOnboardingInitiator } from '../onboarding-initiator-util';
|
|
|
|
export default class EndOfFlowScreen extends PureComponent {
|
|
static contextTypes = {
|
|
t: PropTypes.func,
|
|
metricsEvent: PropTypes.func,
|
|
};
|
|
|
|
static propTypes = {
|
|
history: PropTypes.object,
|
|
completionMetaMetricsName: PropTypes.string,
|
|
setCompletedOnboarding: PropTypes.func,
|
|
onboardingInitiator: PropTypes.exact({
|
|
location: PropTypes.string,
|
|
tabId: PropTypes.number,
|
|
}),
|
|
};
|
|
|
|
async _beforeUnload() {
|
|
await this._onOnboardingComplete();
|
|
}
|
|
|
|
_removeBeforeUnload() {
|
|
window.removeEventListener('beforeunload', this._beforeUnload);
|
|
}
|
|
|
|
async _onOnboardingComplete() {
|
|
const { setCompletedOnboarding, completionMetaMetricsName } = this.props;
|
|
await setCompletedOnboarding();
|
|
this.context.metricsEvent({
|
|
eventOpts: {
|
|
category: 'Onboarding',
|
|
action: 'Onboarding Complete',
|
|
name: completionMetaMetricsName,
|
|
},
|
|
});
|
|
}
|
|
|
|
onComplete = async () => {
|
|
const { history, onboardingInitiator } = this.props;
|
|
|
|
this._removeBeforeUnload();
|
|
await this._onOnboardingComplete();
|
|
if (onboardingInitiator) {
|
|
await returnToOnboardingInitiator(onboardingInitiator);
|
|
}
|
|
history.push(DEFAULT_ROUTE);
|
|
};
|
|
|
|
componentDidMount() {
|
|
window.addEventListener('beforeunload', this._beforeUnload.bind(this));
|
|
}
|
|
|
|
componentWillUnmount = () => {
|
|
this._removeBeforeUnload();
|
|
};
|
|
|
|
render() {
|
|
const { t } = this.context;
|
|
const { onboardingInitiator } = this.props;
|
|
|
|
return (
|
|
<div className="end-of-flow">
|
|
<MetaFoxLogo />
|
|
<div className="end-of-flow__emoji">🎉</div>
|
|
<div className="first-time-flow__header">{t('congratulations')}</div>
|
|
<div className="first-time-flow__text-block end-of-flow__text-1">
|
|
{t('endOfFlowMessage1')}
|
|
</div>
|
|
<div className="first-time-flow__text-block end-of-flow__text-2">
|
|
{t('endOfFlowMessage2')}
|
|
</div>
|
|
<div className="end-of-flow__text-3">
|
|
{`• ${t('endOfFlowMessage3')}`}
|
|
</div>
|
|
<div className="end-of-flow__text-3">
|
|
{`• ${t('endOfFlowMessage4')}`}
|
|
</div>
|
|
<div className="end-of-flow__text-3">
|
|
{`• ${t('endOfFlowMessage5')}`}
|
|
</div>
|
|
<div className="end-of-flow__text-3">
|
|
{`• ${t('endOfFlowMessage6')}`}
|
|
</div>
|
|
<div className="end-of-flow__text-3">
|
|
•{' '}
|
|
{t('endOfFlowMessage7', [
|
|
<a
|
|
target="_blank"
|
|
key="metamaskSupportLink"
|
|
rel="noopener noreferrer"
|
|
href="https://metamask.zendesk.com/hc/en-us/requests/new"
|
|
>
|
|
<span className="first-time-flow__link-text">
|
|
{this.context.t('here')}
|
|
</span>
|
|
</a>,
|
|
])}
|
|
</div>
|
|
<div className="first-time-flow__text-block end-of-flow__text-4">
|
|
{`*${t('endOfFlowMessage8')}`}
|
|
<a
|
|
href="https://metamask.zendesk.com/hc/en-us/articles/360015489591-Basic-Safety-Tips"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<span className="first-time-flow__link-text">
|
|
{t('endOfFlowMessage9')}
|
|
</span>
|
|
</a>
|
|
</div>
|
|
<Button
|
|
type="primary"
|
|
className="first-time-flow__button"
|
|
onClick={this.onComplete}
|
|
>
|
|
{t('endOfFlowMessage10')}
|
|
</Button>
|
|
{onboardingInitiator ? (
|
|
<Snackbar
|
|
content={t('onboardingReturnNotice', [
|
|
t('endOfFlowMessage10'),
|
|
onboardingInitiator.location,
|
|
])}
|
|
/>
|
|
) : null}
|
|
</div>
|
|
);
|
|
}
|
|
}
|