From 21204321c0f955711f730524fa985429e4e9698f Mon Sep 17 00:00:00 2001 From: infinite-persistence <64950861+infinite-persistence@users.noreply.github.com> Date: Thu, 14 Apr 2022 00:22:50 +0800 Subject: [PATCH] Remove abandoned claim from Uploads Page (#7534) ## Issue In Uploads Page, Claim doesn't go away immediately when deleted, only after a refresh. ## Approach - Also update `myClaimsPageResults` when abandoning. - `abandonedUris` is an array because the uris come in various form, so had to check all. (Cherry-pick of Odysee PR_1276) --- ui/redux/reducers/claims.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ui/redux/reducers/claims.js b/ui/redux/reducers/claims.js index da63ef650..0358374e4 100644 --- a/ui/redux/reducers/claims.js +++ b/ui/redux/reducers/claims.js @@ -532,17 +532,25 @@ reducers[ACTIONS.ABANDON_CLAIM_SUCCEEDED] = (state: State, action: any): State = const { claimId }: { claimId: string } = action.data; const byId = Object.assign({}, state.byId); const newMyClaims = state.myClaims ? state.myClaims.slice() : []; + let myClaimsPageResults = null; const newMyChannelClaims = state.myChannelClaims ? state.myChannelClaims.slice() : []; const claimsByUri = Object.assign({}, state.claimsByUri); const abandoningById = Object.assign({}, state.abandoningById); const newMyCollectionClaims = state.myCollectionClaims ? state.myCollectionClaims.slice() : []; + let abandonedUris = []; + Object.keys(claimsByUri).forEach((uri) => { if (claimsByUri[uri] === claimId) { + abandonedUris.push(uri); delete claimsByUri[uri]; } }); + if (abandonedUris.length > 0 && state.myClaimsPageResults) { + myClaimsPageResults = state.myClaimsPageResults.filter((uri) => !abandonedUris.includes(uri)); + } + if (abandoningById[claimId]) { delete abandoningById[claimId]; } @@ -560,6 +568,7 @@ reducers[ACTIONS.ABANDON_CLAIM_SUCCEEDED] = (state: State, action: any): State = byId, claimsByUri, abandoningById, + myClaimsPageResults: myClaimsPageResults || state.myClaimsPageResults, }); };