// @flow import React, { useEffect } from 'react'; import ClaimListDiscover from 'component/claimListDiscover'; import * as CS from 'constants/claim_search'; import Nag from 'component/common/nag'; import { parseURI } from 'util/lbryURI'; import Button from 'component/button'; import Card from 'component/common/card'; import { AUTO_FOLLOW_CHANNELS, CUSTOM_HOMEPAGE, SITE_NAME } from 'config'; type Props = { subscribedChannels: Array, onContinue: () => void, channelSubscribe: (sub: Subscription) => void, homepageData: any, prefsReady: boolean, }; const channelsToSubscribe = AUTO_FOLLOW_CHANNELS.trim() .split(' ') .filter((x) => x !== ''); function UserChannelFollowIntro(props: Props) { const { subscribedChannels, channelSubscribe, onContinue, homepageData, prefsReady } = props; const { PRIMARY_CONTENT, LATEST } = homepageData; let channelIds; if (CUSTOM_HOMEPAGE) { if (LATEST) { channelIds = LATEST.channelIds; } else if (PRIMARY_CONTENT) { channelIds = PRIMARY_CONTENT.channelIds; } } const followingCount = (subscribedChannels && subscribedChannels.length) || 0; const followingCountIgnoringAutoFollows = (subscribedChannels || []).filter( (channel) => !channelsToSubscribe.includes(channel.uri) ).length; // subscribe to lbry useEffect(() => { if (channelsToSubscribe && channelsToSubscribe.length && prefsReady) { const delayedChannelSubscribe = () => { channelsToSubscribe.forEach((c) => { let claimName; try { const { claimName: name } = parseURI(c); claimName = name; } catch (e) {} if (claimName) { channelSubscribe({ channelName: claimName, uri: c, }); } }); }; setTimeout(delayedChannelSubscribe, 1000); } }, [prefsReady]); return (
} defaultOrderBy={CS.ORDER_BY_TRENDING} defaultFreshness={CS.FRESH_ALL} claimType="channel" claimIds={CUSTOM_HOMEPAGE && channelIds ? channelIds : undefined} defaultTags={followingCount > 3 ? CS.TAGS_FOLLOWED : undefined} /> {followingCount > 0 && ( )}
} /> ); } export default UserChannelFollowIntro;