diff --git a/src/components/MultiPublish/MultiPublishDialog.tsx b/src/components/MultiPublish/MultiPublishDialog.tsx index bee497f..eddd5f5 100644 --- a/src/components/MultiPublish/MultiPublishDialog.tsx +++ b/src/components/MultiPublish/MultiPublishDialog.tsx @@ -57,7 +57,7 @@ export const MultiPublishDialogComponent = () => { complete: state.complete })); - const { publishStatus, setPublishStatusByKey } = usePublishStatusStore(); + const { publishStatus, setPublishStatusByKey, reset: resetStatusStore } = usePublishStatusStore(); const resourcesToPublish = useMemo(() => { return resources.filter((item) => @@ -88,8 +88,10 @@ export const MultiPublishDialogComponent = () => { { action: 'PUBLISH_MULTIPLE_QDN_RESOURCES', resources: resourcesToPublish }, timeout ); - + complete(result); + reset(); + resetStatusStore() } catch (error: any) { const unPublished = error?.error?.unsuccessfulPublishes; const failedPublishes: QortalGetMetadata[] = []; diff --git a/src/hooks/usePublish.tsx b/src/hooks/usePublish.tsx index 882584d..4ace8b8 100644 --- a/src/hooks/usePublish.tsx +++ b/src/hooks/usePublish.tsx @@ -275,6 +275,8 @@ interface StoredPublish { const publishMultipleResources = useCallback(async (resources: ResourceToPublish[]): Promise => { return new Promise(async (resolve, reject) => { const store = useMultiplePublishStore.getState(); + const storeStatus = usePublishStatusStore.getState(); + store.setPublishResources(resources); store.setIsPublishing(true); store.setCompletionResolver(resolve); @@ -291,7 +293,10 @@ const publishMultipleResources = useCallback(async (resources: ResourceToPublish action: "PUBLISH_MULTIPLE_QDN_RESOURCES", resources }, lengthOfTimeout); + store.complete(result); + store.reset() + storeStatus.reset() } catch (error: any) { const unPublished = error?.error?.unsuccessfulPublishes; const failedPublishes: QortalGetMetadata[] = [] diff --git a/src/state/multiplePublish.ts b/src/state/multiplePublish.ts index 25c627f..513a97e 100644 --- a/src/state/multiplePublish.ts +++ b/src/state/multiplePublish.ts @@ -94,9 +94,9 @@ type PublishStatusStore = { publishStatus: Record; getPublishStatusByKey: (key: string) => PublishStatus | undefined; setPublishStatusByKey: (key: string, update: Partial) => void; + reset: () => void; }; - export const usePublishStatusStore = create((set, get) => ({ publishStatus: {}, @@ -134,4 +134,6 @@ export const usePublishStatusStore = create((set, get) => ({ }, }); }, + + reset: () => set({ publishStatus: {} }) })); \ No newline at end of file