From a628776518872b4143c021f3a3f80385f7525ecb Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Tue, 16 Jul 2019 23:23:45 -0400 Subject: [PATCH 1/3] Few UX improvements - add message about deleting/editing to comment create intro (feel free to remove, but I thought people would be wondering after they used em) - add note on publish, link to faq - better handling of own urls + takeovers - Add manage email preferences to account page - move recent believe send/receive (on the fence, but I think this is better) - rewards messaging - Add support button for own claims, fix up messaging around this - Help page improvements - Add privacy policy to settings/diagnostics option - maybe a couple things I'm forgetting --- src/ui/component/cardVerify/view.jsx | 2 +- src/ui/component/commentCreate/view.jsx | 5 ++ src/ui/component/publishFile/view.jsx | 7 +++ .../component/publishName/bid-help-text.jsx | 2 + src/ui/component/socialShare/view.jsx | 29 ++------- src/ui/component/userEmail/index.js | 11 +++- src/ui/component/userEmail/view.jsx | 19 +++++- src/ui/component/userVerify/view.jsx | 59 ++++++++++--------- src/ui/component/walletAddress/view.jsx | 4 +- src/ui/component/walletSendTip/view.jsx | 8 ++- src/ui/constants/icons.js | 1 + src/ui/constants/transaction_types.js | 1 + src/ui/modal/modalRevokeClaim/view.jsx | 11 ++++ src/ui/modal/modalSendTip/view.jsx | 7 ++- src/ui/page/file/view.jsx | 15 +++-- src/ui/page/help/view.jsx | 18 +++++- src/ui/page/rewards/view.jsx | 14 +++-- src/ui/page/settings/view.jsx | 5 +- src/ui/page/wallet/view.jsx | 2 +- src/ui/redux/selectors/publish.js | 5 +- 20 files changed, 142 insertions(+), 83 deletions(-) diff --git a/src/ui/component/cardVerify/view.jsx b/src/ui/component/cardVerify/view.jsx index 47a511075..5531a1283 100644 --- a/src/ui/component/cardVerify/view.jsx +++ b/src/ui/component/cardVerify/view.jsx @@ -98,7 +98,7 @@ class CardVerify extends React.Component { componentWillUnmount() { if (this.loadPromise) { - this.loadPromise.cancel(); + this.loadPromise.reject(); } if (CardVerify.stripeHandler && this.state.open) { CardVerify.stripeHandler.close(); diff --git a/src/ui/component/commentCreate/view.jsx b/src/ui/component/commentCreate/view.jsx index 846d371bf..c1738ecba 100644 --- a/src/ui/component/commentCreate/view.jsx +++ b/src/ui/component/commentCreate/view.jsx @@ -49,6 +49,11 @@ export function CommentCreate(props: Props) { 'During the alpha, comments are not decentralized or censorship resistant (but we repeat ourselves).' )} +
  • + {__( + 'For the initial release, deleting or editing comments is not possible. Please be mindful of this when posting.' + )} +
  • {__( 'When the alpha ends, we will attempt to transition comments, but do not promise to do so. Any transition will likely involve publishing previous comments under a single archive handle.' diff --git a/src/ui/component/publishFile/view.jsx b/src/ui/component/publishFile/view.jsx index d9c05baa2..b2bfb6e11 100644 --- a/src/ui/component/publishFile/view.jsx +++ b/src/ui/component/publishFile/view.jsx @@ -3,6 +3,7 @@ import React from 'react'; import { regexInvalidURI } from 'lbry-redux'; import classnames from 'classnames'; import FileSelector from 'component/common/file-selector'; +import Button from 'component/button'; type Props = { name: ?string, @@ -39,6 +40,12 @@ function PublishFile(props: Props) {
    + {!isStillEditing && ( +

    + {__('For video content, use MP4s in H264/AAC format for best compatibility.')}{' '} +

    + +
    + {__('Standard messaging rates apply. LBRY will not text or call you otherwise. Having trouble?')}{' '} +
    + + + +
    +
    +

    {__('2) Proof via Credit')}

    {`${__( 'If you have a valid credit or debit card, you can use it to instantly prove your humanity.' @@ -69,32 +98,6 @@ class UserVerify extends React.PureComponent {

    -
    -
    -

    {__('2) Proof via Phone')}

    -

    - {`${__('You will receive an SMS text message confirming that your phone number is correct.')}`} -

    -
    - -
    -
    -
    - -
    - {__('Standard messaging rates apply. Having trouble?')}{' '} -
    -
    -
    -

    {__('3) Proof via Chat')}

    diff --git a/src/ui/component/walletAddress/view.jsx b/src/ui/component/walletAddress/view.jsx index 7c5083f7c..ada798d42 100644 --- a/src/ui/component/walletAddress/view.jsx +++ b/src/ui/component/walletAddress/view.jsx @@ -71,9 +71,7 @@ class WalletAddress extends React.PureComponent {

    - {__( - 'You can generate a new address at any time, and any previous addresses will continue to work. Using multiple addresses can be helpful for keeping track of incoming payments from multiple sources.' - )} + {__('You can generate a new address at any time, and any previous addresses will continue to work.')}

    diff --git a/src/ui/component/walletSendTip/view.jsx b/src/ui/component/walletSendTip/view.jsx index 3ddc99c87..ceb53242c 100644 --- a/src/ui/component/walletSendTip/view.jsx +++ b/src/ui/component/walletSendTip/view.jsx @@ -5,6 +5,7 @@ import { FormField, Form } from 'component/common/form'; type Props = { uri: string, + claimIsMine: boolean, title: string, claim: StreamClaim, isPending: boolean, @@ -69,7 +70,7 @@ class WalletSendTip extends React.PureComponent { } render() { - const { title, isPending, uri, onCancel } = this.props; + const { title, isPending, uri, onCancel, claimIsMine } = this.props; const { tipAmount, tipError } = this.state; return ( @@ -98,7 +99,10 @@ class WalletSendTip extends React.PureComponent { } helper={

    - {__(`This will appear as a tip for "${title}".`)}{' '} + {claimIsMine + ? __('This will increase your overall bid amount for ') + : __('This will appear as a tip for ')} + {`"${title}" which will boost its ability to be discovered while active.`}{' '}

    -

    {__('Get Live Help')}

    +

    {__('Find Assistance')}

    {__('Live help is available most hours in the')} #help{' '} - {__('channel of our Discord chat room.')} + {__('channel of our Discord chat room. Or you can always email us at help@lbry.com.')}

    diff --git a/src/ui/page/rewards/view.jsx b/src/ui/page/rewards/view.jsx index 833e39d8e..484c86b0e 100644 --- a/src/ui/page/rewards/view.jsx +++ b/src/ui/page/rewards/view.jsx @@ -35,11 +35,17 @@ class RewardsPage extends PureComponent { !IS_WEB && (
    -

    {__('Verification For Rewards')}

    +

    {__('Rewards Approval to Earn Credits (LBC)')}

    - {__('Rewards are for human beings only.')}{' '} - {__("You'll have to prove you're one of us before you can claim any rewards.")}{' '} - {__('This is optional.')} + {__( + 'This step optional. You can continue to use this app without Rewards, but LBC may be needed for some tasks.' + )}{' '} +

    +

    + {__( + "Rewards are for human beings only. You'll have to prove you're one of us before you can claim any." + )}{' '} + {

    diff --git a/src/ui/page/settings/view.jsx b/src/ui/page/settings/view.jsx index 0e15d2454..4be64e9c0 100644 --- a/src/ui/page/settings/view.jsx +++ b/src/ui/page/settings/view.jsx @@ -313,7 +313,10 @@ class SettingsPage extends React.PureComponent { name="share_usage_data" onChange={() => setDaemonSetting('share_usage_data', !daemonSettings.share_usage_data)} checked={daemonSettings.share_usage_data} - label={__('Help make LBRY better by contributing analytics and diagnostic data about my usage.')} + label= + {__('Help make LBRY better by contributing analytics and diagnostic data about my usage.')}{' '} +
    -- 2.45.2 From 05bcaa8f0ea0b199afc9cfcc0f2221114628a237 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Wed, 17 Jul 2019 14:04:50 -0400 Subject: [PATCH 3/3] cleanup --- src/ui/component/claimListDiscover/view.jsx | 2 +- src/ui/component/common/icon-custom.jsx | 6 ++++ src/ui/component/socialShare/view.jsx | 1 - src/ui/component/userEmail/view.jsx | 25 +++++++++------ src/ui/component/userVerify/view.jsx | 2 +- src/ui/constants/icons.js | 2 +- src/ui/page/file/view.jsx | 2 +- src/ui/page/rewards/view.jsx | 9 ++---- src/ui/page/settings/view.jsx | 10 +++--- static/locales/en.json | 35 ++++++++++++++++++++- yarn.lock | 4 +-- 11 files changed, 69 insertions(+), 29 deletions(-) diff --git a/src/ui/component/claimListDiscover/view.jsx b/src/ui/component/claimListDiscover/view.jsx index b20b3ec5d..ed4dfed6a 100644 --- a/src/ui/component/claimListDiscover/view.jsx +++ b/src/ui/component/claimListDiscover/view.jsx @@ -57,7 +57,7 @@ function ClaimListDiscover(props: Props) { channel_ids?: Array, release_time?: string, not_tags?: Array, - } = { page_size: PAGE_SIZE, page }; + } = { page_size: PAGE_SIZE, page, no_totals: true }; const newTags = tagsString.split(','); const newChannelIds = channelsIdString.split(','); diff --git a/src/ui/component/common/icon-custom.jsx b/src/ui/component/common/icon-custom.jsx index 059f51491..4057af42e 100644 --- a/src/ui/component/common/icon-custom.jsx +++ b/src/ui/component/common/icon-custom.jsx @@ -253,4 +253,10 @@ export const icons = { ), + [ICONS.SUPPORT]: buildIcon( + + + + + ), }; diff --git a/src/ui/component/socialShare/view.jsx b/src/ui/component/socialShare/view.jsx index dac202b12..8044c5457 100644 --- a/src/ui/component/socialShare/view.jsx +++ b/src/ui/component/socialShare/view.jsx @@ -27,7 +27,6 @@ class SocialShare extends React.PureComponent { render() { const { claim } = this.props; const { short_url: shortUrl } = claim; - const { speechShareable, onDone } = this.props; const lbryTvPrefix = 'https://beta.lbry.tv/'; diff --git a/src/ui/component/userEmail/view.jsx b/src/ui/component/userEmail/view.jsx index a5d6782f4..05b69ddfe 100644 --- a/src/ui/component/userEmail/view.jsx +++ b/src/ui/component/userEmail/view.jsx @@ -1,5 +1,6 @@ // @flow -import * as React from 'react'; +import type { Node } from 'react'; +import React, { useEffect } from 'react'; import Button from 'component/button'; import { FormField } from 'component/common/form'; import UserEmailNew from 'component/userEmailNew'; @@ -7,7 +8,7 @@ import UserEmailVerify from 'component/userEmailVerify'; import cookie from 'cookie'; type Props = { - cancelButton: React.Node, + cancelButton: Node, email: string, resendVerificationEmail: string => void, checkEmailVerified: () => void, @@ -20,13 +21,6 @@ type Props = { function UserEmail(props: Props) { const { email, user, accessToken, fetchAccessToken } = props; - let isVerified = false; - if (user) { - isVerified = user.has_verified_email; - } - - if (!accessToken) fetchAccessToken(); - const buttonsProps = IS_WEB ? { onClick: () => { @@ -36,6 +30,17 @@ function UserEmail(props: Props) { } : { href: 'https://lbry.com/faq/how-to-change-email' }; + let isVerified = false; + if (user) { + isVerified = user.has_verified_email; + } + + useEffect(() => { + if (!accessToken) { + fetchAccessToken(); + } + }, [accessToken, fetchAccessToken]); + return (
    {!email && } @@ -57,7 +62,7 @@ function UserEmail(props: Props) { readOnly label={ - {__('Your Email - ')}{' '} + {__('Your Email')}{' '}
    diff --git a/src/ui/constants/icons.js b/src/ui/constants/icons.js index 9ffaae038..a5306cdce 100644 --- a/src/ui/constants/icons.js +++ b/src/ui/constants/icons.js @@ -53,7 +53,6 @@ export const SECURE = 'Lock'; export const MENU = 'Menu'; export const BACKUP = 'Database'; export const TRANSACTIONS = 'FileText'; -export const TRENDING_UP = 'TrendingUp'; export const LBRY = 'Lbry'; export const SEND = 'Send'; export const DISCOVER = 'Compass'; @@ -70,3 +69,4 @@ export const MUSIC_EQUALIZER = 'Sliders'; export const LIGHT = 'Sun'; export const DARK = 'Moon'; export const LIBRARY = 'Folder'; +export const SUPPORT = 'TrendingUp'; diff --git a/src/ui/page/file/view.jsx b/src/ui/page/file/view.jsx index 1d8409fec..123e78aec 100644 --- a/src/ui/page/file/view.jsx +++ b/src/ui/page/file/view.jsx @@ -245,7 +245,7 @@ class FilePage extends React.Component { {!claimIsMine && channelUri && }