From e4b63e6b20db5d4b5b7969189a0f7d47f8d955e5 Mon Sep 17 00:00:00 2001 From: miko Date: Mon, 2 Dec 2024 19:18:55 +0200 Subject: [PATCH] Fetch public collections on app launch + also compare for `claimId` in `selectClaimSavedForUrl` in case item is in public list --- ui/redux/actions/app.js | 2 ++ ui/redux/selectors/collections.js | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ui/redux/actions/app.js b/ui/redux/actions/app.js index 1f1b8db395..305e166c6b 100644 --- a/ui/redux/actions/app.js +++ b/ui/redux/actions/app.js @@ -16,6 +16,7 @@ import * as DAEMON_SETTINGS from 'constants/daemon_settings'; import * as SHARED_PREFERENCES from 'constants/shared_preferences'; import Lbry from 'lbry'; import { doFetchChannelListMine, doCheckPendingClaims } from 'redux/actions/claims'; +import { doFetchCollectionListMine } from 'redux/actions/collections'; import { selectClaimForUri, selectClaimIsMineForUri } from 'redux/selectors/claims'; import { doFetchFileInfos } from 'redux/actions/file_info'; import { doClearSupport, doBalanceSubscribe } from 'redux/actions/wallet'; @@ -580,6 +581,7 @@ export function doSignIn() { dispatch(doCheckPendingClaims()); dispatch(doBalanceSubscribe()); dispatch(doFetchChannelListMine()); + dispatch(doFetchCollectionListMine()); dispatch(doMembershipMine()); }; } diff --git a/ui/redux/selectors/collections.js b/ui/redux/selectors/collections.js index 4a76f7354b..106dc14363 100644 --- a/ui/redux/selectors/collections.js +++ b/ui/redux/selectors/collections.js @@ -244,14 +244,17 @@ export const selectClaimSavedForUrl = createSelector( (state, url) => url, selectBuiltinCollections, selectMyPublicLocalCollections, - selectMyPublicLocalCollections, selectMyUnpublishedCollections, selectMyEditedCollections, (url, bLists, myRLists, uLists, eLists) => { const collections = [bLists, uLists, eLists, myRLists]; - // $FlowFixMe - return collections.some((list) => Object.values(list).some(({ items }) => items?.some((item) => item === url))); + const claimId = url.match(/[a-f0-9]{40}/)?.at(0); + + return collections.some((list) => + // $FlowFixMe + Object.values(list).some(({ items }) => items?.some((item) => item === url || item === claimId)) + ); } );