fix background collection update

This commit is contained in:
zeppi 2021-08-22 15:52:44 -04:00 committed by jessopb
parent 8fa92d872d
commit 0302a2f8d6
2 changed files with 52 additions and 39 deletions

20
dist/bundle.es.js vendored
View file

@ -4465,11 +4465,16 @@ function doCollectionPublish(options, localId) {
}; };
} }
function doCollectionPublishUpdate(options) { function doCollectionPublishUpdate(options, isBackgroundUpdate) {
return dispatch => { return (dispatch, getState) => {
// TODO: implement one click update // TODO: implement one click update
const state = getState();
const updateParams = { const updateParams = isBackgroundUpdate ? {
blocking: true,
claim_id: options.claim_id,
clear_claims: true
} : {
bid: creditsToString(options.bid), bid: creditsToString(options.bid),
title: options.title, title: options.title,
thumbnail_url: options.thumbnail_url, thumbnail_url: options.thumbnail_url,
@ -4482,13 +4487,16 @@ function doCollectionPublishUpdate(options) {
clear_claims: true clear_claims: true
}; };
if (isBackgroundUpdate && updateParams.claim_id) {
updateParams['claims'] = makeSelectClaimIdsForCollectionId(updateParams.claim_id)(state);
} else if (options.claims) {
updateParams['claims'] = options.claims;
}
if (options.tags) { if (options.tags) {
updateParams['tags'] = options.tags.map(tag => tag.name); updateParams['tags'] = options.tags.map(tag => tag.name);
} }
if (options.claims) {
updateParams['claims'] = options.claims;
}
return new Promise(resolve => { return new Promise(resolve => {
dispatch({ dispatch({
type: COLLECTION_PUBLISH_UPDATE_STARTED type: COLLECTION_PUBLISH_UPDATE_STARTED

View file

@ -19,7 +19,10 @@ import { creditsToString } from 'util/format-credits';
import { batchActions } from 'util/batch-actions'; import { batchActions } from 'util/batch-actions';
import { createNormalizedClaimSearchKey } from 'util/claim'; import { createNormalizedClaimSearchKey } from 'util/claim';
import { PAGE_SIZE } from 'constants/claim'; import { PAGE_SIZE } from 'constants/claim';
import { selectPendingCollections, makeSelectEditedCollectionForId } from 'redux/selectors/collections'; import {
selectPendingCollections,
makeSelectClaimIdsForCollectionId,
} from 'redux/selectors/collections';
import { import {
doFetchItemsInCollection, doFetchItemsInCollection,
doFetchItemsInCollections, doFetchItemsInCollections,
@ -76,7 +79,7 @@ export function doResolveUris(
const collectionIds: Array<string> = []; const collectionIds: Array<string> = [];
return Lbry.resolve({ urls: urisToResolve, ...options }).then( return Lbry.resolve({ urls: urisToResolve, ...options }).then(
async(result: ResolveResponse) => { async (result: ResolveResponse) => {
let repostedResults = {}; let repostedResults = {};
const repostsToResolve = []; const repostsToResolve = [];
const fallbackResolveInfo = { const fallbackResolveInfo = {
@ -648,7 +651,7 @@ export function doClaimSearch(
} }
) { ) {
const query = createNormalizedClaimSearchKey(options); const query = createNormalizedClaimSearchKey(options);
return async(dispatch: Dispatch) => { return async (dispatch: Dispatch) => {
dispatch({ dispatch({
type: ACTIONS.CLAIM_SEARCH_STARTED, type: ACTIONS.CLAIM_SEARCH_STARTED,
data: { query: query }, data: { query: query },
@ -828,17 +831,20 @@ export function doCollectionPublish(
}; };
} }
export function doCollectionPublishUpdate(options: { export function doCollectionPublishUpdate(
bid?: string, options: {
blocking?: true, bid?: string,
title?: string, blocking?: true,
thumbnail_url?: string, title?: string,
description?: string, thumbnail_url?: string,
claim_id: string, description?: string,
tags?: Array<Tag>, claim_id: string,
languages?: Array<string>, tags?: Array<Tag>,
claims?: Array<string>, languages?: Array<string>,
}, isBackgroundUpdate?: boolean) { claims?: Array<string>,
},
isBackgroundUpdate?: boolean
) {
return (dispatch: Dispatch, getState: GetState): Promise<any> => { return (dispatch: Dispatch, getState: GetState): Promise<any> => {
// TODO: implement one click update // TODO: implement one click update
const state = getState(); const state = getState();
@ -856,34 +862,33 @@ export function doCollectionPublishUpdate(options: {
clear_claims: boolean, clear_claims: boolean,
} = isBackgroundUpdate } = isBackgroundUpdate
? { ? {
blocking: true, blocking: true,
claim_id: options.claim_id, claim_id: options.claim_id,
clear_claims: true, clear_claims: true,
} }
: { : {
bid: creditsToString(options.bid), bid: creditsToString(options.bid),
title: options.title, title: options.title,
thumbnail_url: options.thumbnail_url, thumbnail_url: options.thumbnail_url,
description: options.description, description: options.description,
tags: [], tags: [],
languages: options.languages || [], languages: options.languages || [],
locations: [], locations: [],
blocking: true, blocking: true,
claim_id: options.claim_id, claim_id: options.claim_id,
clear_claims: true, clear_claims: true,
}; };
if (isBackgroundUpdate && updateParams.claim_id) { if (isBackgroundUpdate && updateParams.claim_id) {
updateParams.claims = makeSelectEditedCollectionForId(updateParams.claim_id)(state); updateParams['claims'] = makeSelectClaimIdsForCollectionId(updateParams.claim_id)(state);
} else if (options.claims) {
updateParams['claims'] = options.claims;
} }
if (options.tags) { if (options.tags) {
updateParams['tags'] = options.tags.map(tag => tag.name); updateParams['tags'] = options.tags.map(tag => tag.name);
} }
if (options.claims) {
updateParams['claims'] = options.claims;
}
return new Promise(resolve => { return new Promise(resolve => {
dispatch({ dispatch({
type: ACTIONS.COLLECTION_PUBLISH_UPDATE_STARTED, type: ACTIONS.COLLECTION_PUBLISH_UPDATE_STARTED,