From cda643be26b3587fdac1ad93e1a08f234de4ce3b Mon Sep 17 00:00:00 2001 From: jessop Date: Wed, 12 Feb 2020 16:47:43 -0500 Subject: [PATCH] channel page and invite page take advantage of resolved channel list --- package.json | 2 +- static/app-strings.json | 11 +++++++++-- ui/component/inviteNew/index.js | 10 +--------- ui/component/inviteNew/view.jsx | 33 +++------------------------------ 4 files changed, 14 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 6f5b41fa5..14337500d 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "imagesloaded": "^4.1.4", "json-loader": "^0.5.4", "lbry-format": "https://github.com/lbryio/lbry-format.git", - "lbry-redux": "lbryio/lbry-redux#adebb2d6259e9f69ca055a8a8c0c01fac0af6124", + "lbry-redux": "lbryio/lbry-redux#50aa80d139c7863503b8dfc77947e3cdf3ee801d", "lbryinc": "lbryio/lbryinc#6a59102c52673502569d2c43bd4ee58c315fb2e4", "lint-staged": "^7.0.2", "localforage": "^1.7.1", diff --git a/static/app-strings.json b/static/app-strings.json index 9fc91fa9e..b8493150e 100644 --- a/static/app-strings.json +++ b/static/app-strings.json @@ -929,7 +929,6 @@ "Custom": "Custom", "Playing in %seconds_left% seconds": "Playing in %seconds_left% seconds", "Up Next by %channel%": "Up Next by %channel%", - "Install Now": "Install Now", "Repost": "Repost", "Repost your favorite claims to help more people discover them!": "Repost your favorite claims to help more people discover them!", "Advanced": "Advanced", @@ -941,5 +940,13 @@ "Effective Amount": "Effective Amount", "Is Controlling": "Is Controlling", "Claim ID": "Claim ID", - "Official YouTube Creator - Last updated %time_ago%": "Official YouTube Creator - Last updated %time_ago%" + "Official YouTube Creator - Last updated %time_ago%": "Official YouTube Creator - Last updated %time_ago%", + "Install Now": "Install Now", + "Invite Link": "Invite Link", + "Share this link with friends (or enemies) and get %reward_amount% LBC when they join lbry.tv": "Share this link with friends (or enemies) and get %reward_amount% LBC when they join lbry.tv", + "Your invite link": "Your invite link", + "rewards": "rewards", + "Invite by Email": "Invite by Email", + "Invite someone you know by email and earn %reward_amount% LBC when they join lbry.tv.": "Invite someone you know by email and earn %reward_amount% LBC when they join lbry.tv.", + "Earn %rewards_link% for inviting your friends. Read our %referral_faq_link% to learn more.": "Earn %rewards_link% for inviting your friends. Read our %referral_faq_link% to learn more." } diff --git a/ui/component/inviteNew/index.js b/ui/component/inviteNew/index.js index 065a298f4..fdd549d70 100644 --- a/ui/component/inviteNew/index.js +++ b/ui/component/inviteNew/index.js @@ -7,13 +7,7 @@ import { selectUserInviteReferralCode, doUserInviteNew, } from 'lbryinc'; -import { - selectMyChannelClaims, - selectFetchingMyChannels, - doFetchChannelListMine, - doResolveUris, - selectResolvingUris, -} from 'lbry-redux'; +import { selectMyChannelClaims, selectFetchingMyChannels, doFetchChannelListMine } from 'lbry-redux'; import InviteNew from './view'; const select = state => ({ @@ -24,13 +18,11 @@ const select = state => ({ isPending: selectUserInviteNewIsPending(state), channels: selectMyChannelClaims(state), fetchingChannels: selectFetchingMyChannels(state), - resolvingUris: selectResolvingUris(state), }); const perform = dispatch => ({ inviteNew: email => dispatch(doUserInviteNew(email)), fetchChannelListMine: () => dispatch(doFetchChannelListMine()), - resolveUris: uris => dispatch(doResolveUris(uris)), }); export default connect( diff --git a/ui/component/inviteNew/view.jsx b/ui/component/inviteNew/view.jsx index f6b2a7d3e..4dc1e0c67 100644 --- a/ui/component/inviteNew/view.jsx +++ b/ui/component/inviteNew/view.jsx @@ -16,12 +16,10 @@ type Props = { referralLink: string, referralCode: string, channels: ?Array, - resolvingUris: Array, - resolveUris: (Array) => void, }; function InviteNew(props: Props) { - const { inviteNew, errorMessage, isPending, referralCode = '', channels, resolveUris, resolvingUris } = props; + const { inviteNew, errorMessage, isPending, referralCode = '', channels } = props; const rewardAmount = 20; // Email @@ -36,9 +34,6 @@ function InviteNew(props: Props) { // Referral link const [referralSource, setReferralSource] = useState(referralCode); - /* Canonical Referral links - * We need to make sure our channels are resolved so that canonical_url is present - */ function handleReferralChange(code) { setReferralSource(code); @@ -49,13 +44,6 @@ function InviteNew(props: Props) { } } - const [resolveStarted, setResolveStarted] = useState(false); - const [hasResolved, setHasResolved] = useState(false); - // join them so that useEffect doesn't update on new objects - const uris = channels && channels.map(channel => channel.permanent_url).join(','); - const channelCount = channels && channels.length; - const resolvingCount = resolvingUris && resolvingUris.length; - const topChannel = channels && channels.reduce((top, channel) => { @@ -70,27 +58,12 @@ function InviteNew(props: Props) { const referral = `${URL}/$/invite/${referralString.replace('#', ':')}`; - useEffect(() => { - // resolve once, after we have channel list - if (!hasResolved && !resolveStarted && channelCount && uris) { - setResolveStarted(true); - resolveUris(uris.split(',')); - } - }, [channelCount, resolveStarted, hasResolved, resolvingCount, uris]); - - useEffect(() => { - // once resolving count is 0, we know we're done - if (resolveStarted && !hasResolved && resolvingCount === 0) { - setHasResolved(true); - } - }, [resolveStarted, hasResolved, resolvingCount]); - useEffect(() => { // set default channel - if (topChannel && hasResolved) { + if (topChannel) { handleReferralChange(topChannel.name); } - }, [topChannel, hasResolved]); + }, [topChannel]); function lookupUrlByClaimName(name, channels) { const claim = channels.find(channel => channel.name === name);