lbry-desktop/src/ui/component/userEmailVerify/view.jsx

85 lines
2.2 KiB
React
Raw Normal View History

2018-04-03 17:14:55 +02:00
// @flow
import * as React from 'react';
2018-03-26 23:32:43 +02:00
import Button from 'component/button';
2017-06-03 01:09:52 +02:00
2018-04-03 17:14:55 +02:00
type Props = {
cancelButton: React.Node,
email: string,
resendVerificationEmail: string => void,
checkEmailVerified: () => void,
2019-01-08 03:46:33 +01:00
user: {
has_verified_email: boolean,
},
2018-04-03 17:14:55 +02:00
};
2019-01-08 03:46:33 +01:00
class UserEmailVerify extends React.PureComponent<Props> {
2018-04-03 17:14:55 +02:00
constructor(props: Props) {
2017-06-03 01:09:52 +02:00
super(props);
2019-01-08 03:46:33 +01:00
this.emailVerifyCheckInterval = null;
2018-06-07 04:40:32 +02:00
(this: any).handleResendVerificationEmail = this.handleResendVerificationEmail.bind(this);
2017-06-03 01:09:52 +02:00
}
2019-01-08 03:46:33 +01:00
componentDidMount() {
this.emailVerifyCheckInterval = setInterval(() => this.checkIfVerified(), 5000);
2017-06-03 01:09:52 +02:00
}
2019-01-08 03:46:33 +01:00
componentDidUpdate() {
if (this.emailVerifyCheckInterval && this.props.user.has_verified_email) {
clearInterval(this.emailVerifyCheckInterval);
}
}
componentWillUnmount() {
if (this.emailVerifyCheckInterval) {
clearInterval(this.emailVerifyCheckInterval);
2017-12-23 03:09:06 +01:00
}
2017-06-03 01:09:52 +02:00
}
2018-06-07 04:40:32 +02:00
handleResendVerificationEmail() {
this.props.resendVerificationEmail(this.props.email);
}
2019-01-08 03:46:33 +01:00
checkIfVerified() {
const { checkEmailVerified } = this.props;
checkEmailVerified();
2019-01-08 03:46:33 +01:00
}
emailVerifyCheckInterval: ?IntervalID;
2017-06-03 01:09:52 +02:00
render() {
2019-01-08 03:46:33 +01:00
const { cancelButton, email } = this.props;
2018-04-03 04:40:04 +02:00
2017-06-08 23:15:34 +02:00
return (
<React.Fragment>
<header className="card__header">
<h2 className="card__title">{__('Waiting For Verification')}</h2>
</header>
<div className="card__content">
<p>
{__('An email was sent to')} {email}.{' '}
{__('Follow the link and you will be good to go. This will update automatically.')}
</p>
<div className="card__actions">
<Button
button="primary"
label={__('Resend verification email')}
onClick={this.handleResendVerificationEmail}
/>
{cancelButton}
</div>
<p className="help">
{__('Email')} <Button button="link" href="mailto:help@lbry.io" label="help@lbry.io" />{' '}
or join our <Button button="link" href="https://chat.lbry.io" label="chat" />{' '}
{__('if you encounter any trouble verifying.')}
</p>
</div>
</React.Fragment>
2017-06-08 23:15:34 +02:00
);
2017-06-03 01:09:52 +02:00
}
}
2017-06-08 23:15:34 +02:00
export default UserEmailVerify;