// @flow import * as React from 'react'; import Button from 'component/button'; type Props = { cancelButton: React.Node, email: string, resendVerificationEmail: string => void, checkEmailVerified: () => void, user: { has_verified_email: boolean, }, }; class UserEmailVerify extends React.PureComponent { constructor(props: Props) { super(props); this.emailVerifyCheckInterval = null; (this: any).handleResendVerificationEmail = this.handleResendVerificationEmail.bind(this); } componentDidMount() { this.emailVerifyCheckInterval = setInterval(() => this.checkIfVerified(), 5000); } componentDidUpdate() { if (this.emailVerifyCheckInterval && this.props.user.has_verified_email) { clearInterval(this.emailVerifyCheckInterval); } } componentWillUnmount() { if (this.emailVerifyCheckInterval) { clearInterval(this.emailVerifyCheckInterval); } } handleResendVerificationEmail() { this.props.resendVerificationEmail(this.props.email); } checkIfVerified() { const { checkEmailVerified } = this.props; checkEmailVerified(); } emailVerifyCheckInterval: ?IntervalID; render() { const { cancelButton, email } = this.props; return (

{__('Waiting For Verification')}

{__('An email was sent to')} {email}.{' '} {__('Follow the link and you will be good to go. This will update automatically.')}

{__('Email')}

); } } export default UserEmailVerify;