// @flow import React from 'react'; import CollectionPreviewTile from 'component/collectionPreviewTile'; import ClaimList from 'component/claimList'; import Button from 'component/button'; import { COLLECTIONS_CONSTS } from 'lbry-redux'; import Icon from 'component/common/icon'; import * as ICONS from 'constants/icons'; import * as PAGES from 'constants/pages'; import Yrbl from 'component/yrbl'; import usePersistedState from 'effects/use-persisted-state'; import Card from 'component/common/card'; import classnames from 'classnames'; type Props = { builtinCollections: CollectionGroup, publishedCollections: CollectionGroup, publishedPlaylists: CollectionGroup, unpublishedCollections: CollectionGroup, // savedCollections: CollectionGroup, }; export default function CollectionsListMine(props: Props) { const { builtinCollections, publishedPlaylists, unpublishedCollections, // savedCollections, these are resolved on startup from sync'd claimIds or urls } = props; const builtinCollectionsList = (Object.values(builtinCollections || {}): any); const unpublishedCollectionsList = (Object.keys(unpublishedCollections || {}): any); const publishedList = (Object.keys(publishedPlaylists || {}): any); const hasCollections = unpublishedCollectionsList.length || publishedList.length; const watchLater = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.WATCH_LATER_ID); const favorites = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.FAVORITES_ID); const builtin = [watchLater, favorites]; const [showHelp, setShowHelp] = usePersistedState('livestream-help-seen', true); const helpText = (

{__(`Everyone starts with 2 private lists - Watch Later and Favorites.`)}

{__(`Add content to existing lists or new lists from content pages or content previews.`)}

{__( `By default, lists are private. You can edit them and later publish them from the Lists page or the Publish context menu on this page. Similar to uploads, small blockchain fees apply.` )}

); return ( <> {builtin.map((list: Collection) => { const { items: itemUrls } = list; return (
<> {Boolean(itemUrls && itemUrls.length) && ( <>

)} {!(itemUrls && itemUrls.length) && (

{__(`${list.name}`)}
{__('(Empty) --[indicates empty playlist]--')}

)}
); })}

{__('Playlists')} {!hasCollections && (
{__('(Empty) --[indicates empty playlist]--')}
)}

{showHelp && ( setShowHelp(false)} />} title={__('Introducing Lists')} actions={helpText} /> )} {Boolean(hasCollections) && (
{/* TODO: fix above spacing hack */}
{unpublishedCollectionsList && unpublishedCollectionsList.length > 0 && unpublishedCollectionsList.map((key) => ( ))} {publishedList && publishedList.length > 0 && publishedList.map((key) => )}
)} {!hasCollections && (
//
// } />
)} ); }