lbry-desktop/src/renderer/component/userFieldVerify/view.jsx

79 lines
2 KiB
React
Raw Normal View History

import React from 'react';
import Link from 'component/link';
import { Form, FormRow, Submit } from 'component/form.js';
2017-06-03 01:09:52 +02:00
2018-01-11 07:16:03 +01:00
class UserFieldVerify extends React.PureComponent {
2017-06-03 01:09:52 +02:00
constructor(props) {
super(props);
this.state = {
code: '',
2017-06-03 01:09:52 +02:00
};
}
handleCodeChanged(event) {
this.setState({
2017-07-19 01:00:13 +02:00
code: String(event.target.value).trim(),
2017-06-03 01:09:52 +02:00
});
}
handleSubmit() {
const { code } = this.state;
2018-01-15 14:32:01 +01:00
const { fieldType } = this.props;
if (fieldType === 'phone') {
this.props.verifyUserPhone(code);
} else {
try {
const verification = JSON.parse(atob(code));
this.props.verifyUserEmail(verification.token, verification.recaptcha);
} catch (error) {
this.props.verifyUserEmailFailure('Invalid Verification Token');
}
2017-12-23 03:09:06 +01:00
}
2017-06-03 01:09:52 +02:00
}
render() {
const {
cancelButton,
emailErrorMessage,
phoneErrorMessage,
email,
isPending,
phone,
2018-01-18 06:09:08 +01:00
countryCode,
} = this.props;
2017-06-08 23:15:34 +02:00
return (
<Form onSubmit={this.handleSubmit.bind(this)}>
2018-01-18 06:09:08 +01:00
<p>
Please enter the verification code sent to {countryCode ? `+${countryCode}` : ''}
{phone || email}.
</p>
2017-06-08 23:15:34 +02:00
<FormRow
type="text"
label={__('Verification Code')}
2017-06-08 23:15:34 +02:00
name="code"
value={this.state.code}
onChange={event => {
this.handleCodeChanged(event);
}}
errorMessage={emailErrorMessage || phoneErrorMessage}
2017-06-08 23:15:34 +02:00
/>
{/* render help separately so it always shows */}
<div className="form-field__helper">
<p>
{__('Email')} <Link href="mailto:help@lbry.io" label="help@lbry.io" /> or join our{' '}
<Link href="https://chat.lbry.io" label="chat" />{' '}
{__('if you encounter any trouble with your code.')}
2017-06-08 23:15:34 +02:00
</p>
</div>
<div className="form-row-submit">
<Submit label={__('Verify')} disabled={isPending} />
{cancelButton}
2017-06-08 23:15:34 +02:00
</div>
</Form>
2017-06-08 23:15:34 +02:00
);
2017-06-03 01:09:52 +02:00
}
}
2018-01-11 07:16:03 +01:00
export default UserFieldVerify;