lbry-desktop/ui/component/userEmail/view.jsx

74 lines
1.9 KiB
React
Raw Permalink Normal View History

2019-06-17 22:32:38 +02:00
// @flow
2019-09-26 18:07:11 +02:00
import * as PAGES from 'constants/pages';
2019-07-17 20:04:50 +02:00
import type { Node } from 'react';
import React, { useEffect } from 'react';
2019-06-17 22:32:38 +02:00
import Button from 'component/button';
import { FormField } from 'component/common/form';
2019-09-26 18:07:11 +02:00
import UserSignOutButton from 'component/userSignOutButton';
import Card from 'component/common/card';
2019-06-17 22:32:38 +02:00
type Props = {
2019-07-17 20:04:50 +02:00
cancelButton: Node,
2019-06-17 22:32:38 +02:00
email: string,
resendVerificationEmail: (string) => void,
2019-06-17 22:32:38 +02:00
checkEmailVerified: () => void,
user: {
has_verified_email: boolean,
},
fetchAccessToken: () => void,
accessToken: string,
2019-06-17 22:32:38 +02:00
};
function UserEmail(props: Props) {
const { email, user, accessToken, fetchAccessToken } = props;
2019-06-27 08:18:45 +02:00
2019-07-17 20:04:50 +02:00
let isVerified = false;
if (user) {
isVerified = user.has_verified_email;
}
useEffect(() => {
if (!accessToken) {
fetchAccessToken();
}
}, [accessToken, fetchAccessToken]);
2019-06-17 22:32:38 +02:00
return (
2019-09-26 18:07:11 +02:00
<Card
title={__('Cloud Account')}
2019-11-13 19:14:19 +01:00
subtitle={
isVerified
? undefined
: __(
'Connecting with a cloud account will allow you to earn rewards, receive content and security updates, and optionally backup your data.'
2019-11-13 19:14:19 +01:00
)
}
actions={
2019-09-27 20:56:15 +02:00
isVerified ? (
2019-09-26 18:07:11 +02:00
<FormField
type="text"
className="form-field--copyable"
readOnly
label={
<React.Fragment>
2020-08-26 22:28:33 +02:00
{__('Your email')}{' '}
2019-09-26 18:07:11 +02:00
<Button
button="link"
label={__('Update mailing preferences')}
href={`http://lbry.io/list/edit/${accessToken}`}
/>
</React.Fragment>
}
2019-11-22 22:13:00 +01:00
inputButton={<UserSignOutButton button="secondary" />}
2019-09-26 18:07:11 +02:00
value={email || ''}
/>
2019-09-27 20:56:15 +02:00
) : (
2020-08-24 19:59:37 +02:00
<Button button="primary" label={__('Log In')} navigate={`/$/${PAGES.AUTH}`} />
)
2019-09-26 18:07:11 +02:00
}
/>
2019-06-17 22:32:38 +02:00
);
}
export default UserEmail;