diff --git a/src/components/ResourceList/ResourceListDisplay.tsx b/src/components/ResourceList/ResourceListDisplay.tsx index 6918078..1baa494 100644 --- a/src/components/ResourceList/ResourceListDisplay.tsx +++ b/src/components/ResourceList/ResourceListDisplay.tsx @@ -91,6 +91,7 @@ export const MemorizedComponent = ({ }: PropsResourceListDisplay) => { const { fetchResources } = useResources(); const { filterOutDeletedResources } = useCacheStore(); + const deletedResources = useCacheStore().deletedResources const memoizedParams = useMemo(() => JSON.stringify(search), [search]); const addList = useListStore().addList const removeFromList = useListStore().removeFromList @@ -153,7 +154,7 @@ export const MemorizedComponent = ({ }, []) const listToDisplay = useMemo(()=> { return filterOutDeletedResources([...temporaryResources, ...list]) - }, [list, listName, filterOutDeletedResources, temporaryResources]) + }, [list, listName, deletedResources, temporaryResources]) diff --git a/src/hooks/useResources.tsx b/src/hooks/useResources.tsx index 7c31029..9586c57 100644 --- a/src/hooks/useResources.tsx +++ b/src/hooks/useResources.tsx @@ -250,19 +250,33 @@ export const useResources = () => { }); }, []); - const deleteProduct = useCallback(async (qortalMetadata: QortalMetadata) => { - if (!qortalMetadata?.service || !qortalMetadata?.identifier) - throw new Error("Missing fields"); - await qortalRequest({ - action: "PUBLISH_QDN_RESOURCE", - service: qortalMetadata.service, - identifier: qortalMetadata.identifier, - base64: "RA==", - }); - markResourceAsDeleted(qortalMetadata); + const deleteProduct = useCallback(async (resourcesToDelete: QortalMetadata[]) => { + + + + + const deletes = [] + for (const resource of resourcesToDelete) { + if (!resource?.service || !resource?.identifier) + throw new Error("Missing fields"); + deletes.push({ + service: resource.service, + identifier: resource.identifier, + base64: "RA==", + }); + } + await qortalRequestWithTimeout({ + action: "PUBLISH_MULTIPLE_QDN_RESOURCES", + resources: deletes, + }, 600000); + resourcesToDelete.forEach((item)=> { + markResourceAsDeleted(item); + }) return true; }, []); + + return { fetchResources, fetchIndividualPublishJson,