From 80a5247f463d5acf1d1860e26f635198d7d1588f Mon Sep 17 00:00:00 2001 From: zeppi Date: Wed, 18 Aug 2021 17:12:52 -0400 Subject: [PATCH 1/8] remove help card from lists page --- ui/component/collectionsListMine/view.jsx | 43 ++++++----------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index 45b3b6c96..aa36c4056 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -8,9 +8,6 @@ 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, @@ -36,19 +33,6 @@ export default function CollectionsListMine(props: Props) { 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 ( <> @@ -68,9 +52,14 @@ export default function CollectionsListMine(props: Props) { {__(`${list.name}`)}
- + {itemUrls.length}
@@ -91,28 +80,16 @@ export default function CollectionsListMine(props: Props) { ); })}
-
+

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

-
- {showHelp && ( - setShowHelp(false)} />} - title={__('Introducing Lists')} - actions={helpText} - /> - )} {Boolean(hasCollections) && ( -
+
{/* TODO: fix above spacing hack */}
{unpublishedCollectionsList && -- 2.45.3 From d7329840efeaadcdaca0310702668f0623a589a1 Mon Sep 17 00:00:00 2001 From: saltrafael <76502841+saltrafael@users.noreply.github.com> Date: Wed, 18 Aug 2021 18:40:36 -0300 Subject: [PATCH 2/8] Improve clickability of notification links (#6711) --- CHANGELOG.md | 1 + ui/component/notification/view.jsx | 110 ++++++++++++++++++--------- ui/scss/component/_notification.scss | 4 + 3 files changed, 81 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93caaaafa..a6118a90e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Update lighthouse search api _community pr!_ ([#6731](https://github.com/lbryio/lbry-desktop/pull/6731)) - Update sockety api _community pr!_ ([#6747](https://github.com/lbryio/lbry-desktop/pull/6747)) - Use resolve for OG metadata instead of chainquery _community pr!_ ([#6787](https://github.com/lbryio/lbry-desktop/pull/6787)) +- Improved clickability of notification links _community pr!_ ([#6711](https://github.com/lbryio/lbry-desktop/pull/6711)) ### Fixed - App now supports '#' and ':' for claimId separator ([#6496](https://github.com/lbryio/lbry-desktop/pull/6496)) diff --git a/ui/component/notification/view.jsx b/ui/component/notification/view.jsx index 889d43ac4..3a0d70811 100644 --- a/ui/component/notification/view.jsx +++ b/ui/component/notification/view.jsx @@ -16,6 +16,8 @@ import FileThumbnail from 'component/fileThumbnail'; import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button'; import NotificationContentChannelMenu from 'component/notificationContentChannelMenu'; import LbcMessage from 'component/common/lbc-message'; +import UriIndicator from 'component/uriIndicator'; +import { NavLink } from 'react-router-dom'; type Props = { notification: WebNotification, @@ -29,13 +31,12 @@ export default function Notification(props: Props) { const { notification, menuButton = false, doReadNotifications, doDeleteNotification } = props; const { push } = useHistory(); const { notification_rule, notification_parameters, is_read, id } = notification; + const isCommentNotification = notification_rule === RULE.COMMENT || notification_rule === RULE.COMMENT_REPLY || notification_rule === RULE.CREATOR_COMMENT; const commentText = isCommentNotification && notification_parameters.dynamic.comment; - const channelUrl = - (notification_rule === RULE.NEW_CONTENT && notification.notification_parameters.dynamic.channel_url) || ''; let notificationTarget; switch (notification_rule) { @@ -51,21 +52,14 @@ export default function Notification(props: Props) { notificationTarget = notification_parameters.device.target; } - let notificationLink = formatLbryUrlForWeb(notificationTarget); - let urlParams = new URLSearchParams(); - if (isCommentNotification && notification_parameters.dynamic.hash) { - urlParams.append('lc', notification_parameters.dynamic.hash); - } - - try { - const { isChannel } = parseURI(notificationTarget); - if (isChannel) { - urlParams.append(PAGE_VIEW_QUERY, DISCUSSION_PAGE); - } - } catch (e) {} - - notificationLink += `?${urlParams.toString()}`; - + const creatorIcon = (channelUrl) => { + return ( + + + + ); + }; + let channelUrl; let icon; switch (notification_rule) { case RULE.CREATOR_SUBSCRIBER: @@ -73,16 +67,20 @@ export default function Notification(props: Props) { break; case RULE.COMMENT: case RULE.CREATOR_COMMENT: - icon = ; + channelUrl = notification_parameters.dynamic.comment_author; + icon = creatorIcon(channelUrl); break; case RULE.COMMENT_REPLY: - icon = ; + channelUrl = notification_parameters.dynamic.reply_author; + icon = creatorIcon(channelUrl); break; case RULE.NEW_CONTENT: - icon = ; + channelUrl = notification_parameters.dynamic.channel_url; + icon = creatorIcon(channelUrl); break; case RULE.NEW_LIVESTREAM: - icon = ; + channelUrl = notification_parameters.dynamic.channel_url; + icon = creatorIcon(channelUrl); break; case RULE.DAILY_WATCH_AVAILABLE: case RULE.DAILY_WATCH_REMIND: @@ -97,12 +95,54 @@ export default function Notification(props: Props) { icon = ; } + let notificationLink = formatLbryUrlForWeb(notificationTarget); + let urlParams = new URLSearchParams(); + if (isCommentNotification && notification_parameters.dynamic.hash) { + urlParams.append('lc', notification_parameters.dynamic.hash); + } + + let channelName = channelUrl && '@' + channelUrl.split('@')[1].split('#')[0]; + + const notificationTitle = notification_parameters.device.title; + const titleSplit = notificationTitle.split(' '); + let fullTitle = [' ']; + let uriIndicator; + const title = titleSplit.map((message, index) => { + if (channelName === message) { + uriIndicator = ; + fullTitle.push(' '); + const resultTitle = fullTitle; + fullTitle = [' ']; + + return [resultTitle.join(' '), uriIndicator]; + } else { + fullTitle.push(message); + + if (index === titleSplit.length - 1) { + return {fullTitle.join(' ')}; + } + } + }); + + try { + const { isChannel } = parseURI(notificationTarget); + if (isChannel) { + urlParams.append(PAGE_VIEW_QUERY, DISCUSSION_PAGE); + } + } catch (e) {} + + notificationLink += `?${urlParams.toString()}`; + const navLinkProps = { + to: notificationLink, + onClick: (e) => e.stopPropagation(), + }; + function handleNotificationClick() { if (!is_read) { doReadNotifications([id]); } - if (notificationLink) { + if (menuButton && notificationLink) { push(notificationLink); } } @@ -120,9 +160,11 @@ export default function Notification(props: Props) { ) : notificationLink ? (props: { children: any }) => ( - - {props.children} - + + + {props.children} + + ) : (props: { children: any }) => (
- {!isCommentNotification && ( -
- {notification_parameters.device.title} -
- )} + {!isCommentNotification &&
{title}
} {isCommentNotification && commentText ? ( <> -
- {notification_parameters.device.title} -
+
{title}
{commentText}
@@ -193,7 +229,13 @@ export default function Notification(props: Props) {
- e.stopPropagation()}> + { + e.preventDefault(); + e.stopPropagation(); + }} + > diff --git a/ui/scss/component/_notification.scss b/ui/scss/component/_notification.scss index f092095c4..6d61abba5 100644 --- a/ui/scss/component/_notification.scss +++ b/ui/scss/component/_notification.scss @@ -42,6 +42,7 @@ $contentMaxWidth: 60rem; width: 100%; display: flex; padding: var(--spacing-m) 0; + justify-content: space-between; .channel-thumbnail { @include handleChannelGif(3rem); @@ -60,6 +61,7 @@ $contentMaxWidth: 60rem; .notification__wrapper--unread { background-color: var(--color-card-background-highlighted); + justify-content: space-between; &:hover { background-color: var(--color-button-secondary-bg); @@ -120,6 +122,7 @@ $contentMaxWidth: 60rem; } .notification__title { + position: relative; font-size: var(--font-small); color: var(--color-text); margin-bottom: var(--spacing-s); @@ -135,6 +138,7 @@ $contentMaxWidth: 60rem; .notification__text { font-size: var(--font-body); + color: var(--color-text); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; -- 2.45.3 From fb03d3a7f97b6b87ae0e2db05cabb26992e462a3 Mon Sep 17 00:00:00 2001 From: jessopb <36554050+jessopb@users.noreply.github.com> Date: Wed, 18 Aug 2021 19:30:07 -0400 Subject: [PATCH 3/8] Fix video dispose (#6904) * fix video dispose bug * remove commented --- ui/component/app/view.jsx | 19 ++++++++++++++++++- .../viewers/videoViewer/internal/videojs.jsx | 18 +----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/ui/component/app/view.jsx b/ui/component/app/view.jsx index 4ab5d4fbf..aadc719e4 100644 --- a/ui/component/app/view.jsx +++ b/ui/component/app/view.jsx @@ -5,7 +5,7 @@ import { lazyImport } from 'util/lazyImport'; import classnames from 'classnames'; import analytics from 'analytics'; import { buildURI, parseURI } from 'lbry-redux'; -import { SIMPLE_SITE } from 'config'; +import { SIMPLE_SITE, ENABLE_PREROLL_ADS } from 'config'; import Router from 'component/router/index'; import ReactModal from 'react-modal'; import { openContextMenu } from 'util/context-menu'; @@ -325,6 +325,23 @@ function App(props: Props) { } }, [previousRewardApproved, isRewardApproved]); + // Load IMA3 SDK for aniview + // @if TARGET='web' + useEffect(() => { + if (ENABLE_PREROLL_ADS) { + const script = document.createElement('script'); + script.src = `https://imasdk.googleapis.com/js/sdkloader/ima3.js`; + script.async = true; + // $FlowFixMe + document.body.appendChild(script); + return () => { + // $FlowFixMe + document.body.removeChild(script); + }; + } + }); + // @endif + // @if TARGET='app' useEffect(() => { if (updatePreferences && getWalletSyncPref && readyForPrefs) { diff --git a/ui/component/viewers/videoViewer/internal/videojs.jsx b/ui/component/viewers/videoViewer/internal/videojs.jsx index d27bf7f1d..73ee97457 100644 --- a/ui/component/viewers/videoViewer/internal/videojs.jsx +++ b/ui/component/viewers/videoViewer/internal/videojs.jsx @@ -624,8 +624,8 @@ export default React.memo(function VideoJs(props: Props) { const player = playerRef.current; if (player) { - window.player = undefined; player.dispose(); + window.player = undefined; } }; }, [isAudio]); @@ -664,22 +664,6 @@ export default React.memo(function VideoJs(props: Props) { }); }, [source, reload]); - // Load IMA3 SDK for aniview - // @if TARGET='web' - useEffect(() => { - const script = document.createElement('script'); - script.src = `https://imasdk.googleapis.com/js/sdkloader/ima3.js`; - script.async = true; - // $FlowFixMe - document.body.appendChild(script); - - return () => { - // $FlowFixMe - document.body.removeChild(script); - }; - }); - // @endif - return ( // $FlowFixMe
-- 2.45.3 From 8318b2995e3b30f22e5bce8d5b658560cccaaafa Mon Sep 17 00:00:00 2001 From: zeppi Date: Wed, 18 Aug 2021 21:20:00 -0400 Subject: [PATCH 4/8] filtering to playlists page --- ui/component/collectionsListMine/index.js | 2 +- ui/component/collectionsListMine/view.jsx | 77 +++++++++++++++++++---- 2 files changed, 67 insertions(+), 12 deletions(-) diff --git a/ui/component/collectionsListMine/index.js b/ui/component/collectionsListMine/index.js index d4b92bf2a..92bd2f2f7 100644 --- a/ui/component/collectionsListMine/index.js +++ b/ui/component/collectionsListMine/index.js @@ -9,7 +9,7 @@ import CollectionsListMine from './view'; const select = (state) => ({ builtinCollections: selectBuiltinCollections(state), - publishedPlaylists: selectMyPublishedPlaylistCollections(state), + publishedCollections: selectMyPublishedPlaylistCollections(state), unpublishedCollections: selectMyUnpublishedCollections(state), // savedCollections: selectSavedCollections(state), }); diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index aa36c4056..51739fc44 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -8,27 +8,60 @@ import Icon from 'component/common/icon'; import * as ICONS from 'constants/icons'; import * as PAGES from 'constants/pages'; import Yrbl from 'component/yrbl'; +import classnames from 'classnames'; +import { FormField, Form } from 'component/common/form'; type Props = { builtinCollections: CollectionGroup, publishedCollections: CollectionGroup, - publishedPlaylists: CollectionGroup, + publishedCollections: CollectionGroup, unpublishedCollections: CollectionGroup, // savedCollections: CollectionGroup, }; +const ALL = 'All'; +const PRIVATE = 'Private'; +const PUBLIC = 'Public'; +const COLLECTION_FILTER = [ALL, PRIVATE, PUBLIC]; + export default function CollectionsListMine(props: Props) { const { builtinCollections, - publishedPlaylists, + publishedCollections, 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 publishedList = (Object.keys(publishedCollections || {}): any); const hasCollections = unpublishedCollectionsList.length || publishedList.length; + const [filterType, setFilterType] = React.useState(ALL); + const [searchText, setSearchText] = React.useState(''); + + const collectionsToShow = []; + if (filterType === ALL) { + collectionsToShow.push(...unpublishedCollectionsList); + collectionsToShow.push(...publishedList); + } else if (filterType === PRIVATE) { + collectionsToShow.push(...unpublishedCollectionsList); + } else if (filterType === PUBLIC) { + collectionsToShow.push(...publishedList); + } + + let filteredCollections; + if (searchText) { + filteredCollections = collectionsToShow.filter((id) => { + return ( + (unpublishedCollections[id] && + unpublishedCollections[id].name.toLocaleLowerCase().startsWith(searchText.toLocaleLowerCase())) || + (publishedCollections[id] && + publishedCollections[id].name.toLocaleLowerCase().startsWith(searchText.toLocaleLowerCase())) + ); + }); + } else { + filteredCollections = collectionsToShow; + } const watchLater = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.WATCH_LATER_ID); const favorites = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.FAVORITES_ID); @@ -88,18 +121,40 @@ export default function CollectionsListMine(props: Props) { )}
+
+
+
+ {COLLECTION_FILTER.map((value) => ( +
+
+
{}} className="wunderbar--inline"> + + setSearchText(e.target.value)} + type="text" + placeholder={__('Search')} + /> + +
{Boolean(hasCollections) && (
{/* TODO: fix above spacing hack */}
- {unpublishedCollectionsList && - unpublishedCollectionsList.length > 0 && - unpublishedCollectionsList.map((key) => ( - - ))} - {publishedList && - publishedList.length > 0 && - publishedList.map((key) => )} + {filteredCollections && + filteredCollections.length > 0 && + filteredCollections.map((key) => )}
)} -- 2.45.3 From 0cf5028e6fcd213dcf6dbc58e01b9712dfdb35f6 Mon Sep 17 00:00:00 2001 From: zeppi Date: Wed, 18 Aug 2021 22:47:35 -0400 Subject: [PATCH 5/8] refactor --- ui/component/collectionsListMine/view.jsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index 51739fc44..f9d899942 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -22,7 +22,7 @@ type Props = { const ALL = 'All'; const PRIVATE = 'Private'; const PUBLIC = 'Public'; -const COLLECTION_FILTER = [ALL, PRIVATE, PUBLIC]; +const COLLECTION_FILTERS = [ALL, PRIVATE, PUBLIC]; export default function CollectionsListMine(props: Props) { const { @@ -39,28 +39,27 @@ export default function CollectionsListMine(props: Props) { const [filterType, setFilterType] = React.useState(ALL); const [searchText, setSearchText] = React.useState(''); - const collectionsToShow = []; + let collectionsToShow; if (filterType === ALL) { - collectionsToShow.push(...unpublishedCollectionsList); - collectionsToShow.push(...publishedList); + collectionsToShow = unpublishedCollectionsList.concat(publishedList); } else if (filterType === PRIVATE) { - collectionsToShow.push(...unpublishedCollectionsList); + collectionsToShow = unpublishedCollectionsList; } else if (filterType === PUBLIC) { - collectionsToShow.push(...publishedList); + collectionsToShow = publishedList; } let filteredCollections; - if (searchText) { + if (searchText && collectionsToShow) { filteredCollections = collectionsToShow.filter((id) => { return ( (unpublishedCollections[id] && - unpublishedCollections[id].name.toLocaleLowerCase().startsWith(searchText.toLocaleLowerCase())) || + unpublishedCollections[id].name.toLocaleLowerCase().includes(searchText.toLocaleLowerCase())) || (publishedCollections[id] && - publishedCollections[id].name.toLocaleLowerCase().startsWith(searchText.toLocaleLowerCase())) + publishedCollections[id].name.toLocaleLowerCase().includes(searchText.toLocaleLowerCase())) ); }); } else { - filteredCollections = collectionsToShow; + filteredCollections = collectionsToShow || []; } const watchLater = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.WATCH_LATER_ID); @@ -124,7 +123,7 @@ export default function CollectionsListMine(props: Props) {
- {COLLECTION_FILTER.map((value) => ( + {COLLECTION_FILTERS.map((value) => (
)} -- 2.45.3 From f168353a125123264052c92048ae406146e37d2d Mon Sep 17 00:00:00 2001 From: zeppi Date: Thu, 19 Aug 2021 12:05:42 -0400 Subject: [PATCH 6/8] clear playlists filter on escape --- ui/component/collectionsListMine/view.jsx | 32 ++++++++++++++--------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index f9d899942..0866a1889 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -39,7 +39,7 @@ export default function CollectionsListMine(props: Props) { const [filterType, setFilterType] = React.useState(ALL); const [searchText, setSearchText] = React.useState(''); - let collectionsToShow; + let collectionsToShow = []; if (filterType === ALL) { collectionsToShow = unpublishedCollectionsList.concat(publishedList); } else if (filterType === PRIVATE) { @@ -59,13 +59,27 @@ export default function CollectionsListMine(props: Props) { ); }); } else { - filteredCollections = collectionsToShow || []; + filteredCollections = collectionsToShow.slice(0, 24) || []; } 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]; + function altEnterListener(e: SyntheticKeyboardEvent<*>) { + const KEYCODE_ESCAPE = 27; + if (e.keyCode === KEYCODE_ESCAPE) { + e.preventDefault(); + setSearchText(''); + } + } + function onTextareaFocus() { + window.addEventListener('keydown', altEnterListener); + } + + function onTextareaBlur() { + window.removeEventListener('keydown', altEnterListener); + } return ( <> {builtin.map((list: Collection) => { @@ -120,7 +134,7 @@ export default function CollectionsListMine(props: Props) { )}
-
+
{COLLECTION_FILTERS.map((value) => ( @@ -139,6 +153,8 @@ export default function CollectionsListMine(props: Props) {
{}} className="wunderbar--inline"> setSearchText(e.target.value)} @@ -160,15 +176,7 @@ export default function CollectionsListMine(props: Props) { )} {!hasCollections && (
- - //
- // } - /> +
)}
-- 2.45.3 From 941744717e9e608dbc4a71f9ca6bbd34bfb7abd1 Mon Sep 17 00:00:00 2001 From: zeppi Date: Thu, 19 Aug 2021 12:07:45 -0400 Subject: [PATCH 7/8] rename --- ui/component/collectionsListMine/view.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index 0866a1889..2a33849cd 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -65,7 +65,7 @@ export default function CollectionsListMine(props: Props) { 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]; - function altEnterListener(e: SyntheticKeyboardEvent<*>) { + function escapeListener(e: SyntheticKeyboardEvent<*>) { const KEYCODE_ESCAPE = 27; if (e.keyCode === KEYCODE_ESCAPE) { e.preventDefault(); @@ -74,11 +74,11 @@ export default function CollectionsListMine(props: Props) { } function onTextareaFocus() { - window.addEventListener('keydown', altEnterListener); + window.addEventListener('keydown', escapeListener); } function onTextareaBlur() { - window.removeEventListener('keydown', altEnterListener); + window.removeEventListener('keydown', escapeListener); } return ( <> -- 2.45.3 From 3df0d2854e6c90d60703e5ecd6dd9b7a4c66e008 Mon Sep 17 00:00:00 2001 From: zeppi Date: Thu, 19 Aug 2021 12:56:01 -0400 Subject: [PATCH 8/8] no show playlist limit for now --- ui/component/collectionsListMine/view.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/component/collectionsListMine/view.jsx b/ui/component/collectionsListMine/view.jsx index 2a33849cd..ee3be8b17 100644 --- a/ui/component/collectionsListMine/view.jsx +++ b/ui/component/collectionsListMine/view.jsx @@ -59,7 +59,7 @@ export default function CollectionsListMine(props: Props) { ); }); } else { - filteredCollections = collectionsToShow.slice(0, 24) || []; + filteredCollections = collectionsToShow || []; } const watchLater = builtinCollectionsList.find((list) => list.id === COLLECTIONS_CONSTS.WATCH_LATER_ID); -- 2.45.3