+
{
return data;
},
onSuccess: (data) => {
- queryClient.invalidateQueries({ queryKey: ["links"] });
- queryClient.invalidateQueries({ queryKey: ["dashboardData"] });
+ queryClient.setQueryData(["dashboardData"], (oldData: any) => {
+ if (!oldData?.links) return undefined;
+ return {
+ ...oldData,
+ links: oldData.links.map((e: any) =>
+ e.id === data.response.id
+ ? {
+ ...e,
+ preview: `archives/preview/${e.collectionId}/${e.id}.jpeg`,
+ }
+ : e
+ ),
+ };
+ });
- queryClient.invalidateQueries({ queryKey: ["collections"] });
- queryClient.invalidateQueries({ queryKey: ["tags"] });
- queryClient.invalidateQueries({ queryKey: ["publicLinks"] });
+ queryClient.setQueriesData({ queryKey: ["links"] }, (oldData: any) => {
+ if (!oldData) return undefined;
+ return {
+ pages: oldData.pages.map((page: any) =>
+ page.map((item: any) =>
+ item.id === data.response.id
+ ? {
+ ...item,
+ preview: `archives/preview/${item.collectionId}/${item.id}.jpeg`,
+ updatedAt: new Date().toISOString(),
+ }
+ : item
+ )
+ ),
+ pageParams: oldData.pageParams,
+ };
+ });
},
});
};
diff --git a/lib/api/controllers/links/linkId/updateLinkById.ts b/lib/api/controllers/links/linkId/updateLinkById.ts
index 7ba5953..9c79316 100644
--- a/lib/api/controllers/links/linkId/updateLinkById.ts
+++ b/lib/api/controllers/links/linkId/updateLinkById.ts
@@ -124,7 +124,7 @@ export default async function updateLinkById(
})),
},
pinnedBy:
- data?.pinnedBy && data.pinnedBy[0].id === userId
+ data?.pinnedBy && data.pinnedBy[0]?.id === userId
? { connect: { id: userId } }
: { disconnect: { id: userId } },
},