aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/shared-react/hooks/bookmarks.ts4
-rw-r--r--packages/shared-react/hooks/lists.ts2
-rw-r--r--packages/trpc/routers/lists.ts11
3 files changed, 17 insertions, 0 deletions
diff --git a/packages/shared-react/hooks/bookmarks.ts b/packages/shared-react/hooks/bookmarks.ts
index 89715e4f..7339f6c2 100644
--- a/packages/shared-react/hooks/bookmarks.ts
+++ b/packages/shared-react/hooks/bookmarks.ts
@@ -30,6 +30,7 @@ export function useCreateBookmark(
onSuccess: (res, req, meta) => {
apiUtils.bookmarks.getBookmarks.invalidate();
apiUtils.bookmarks.searchBookmarks.invalidate();
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
@@ -61,6 +62,7 @@ export function useDeleteBookmark(
apiUtils.bookmarks.getBookmarks.invalidate();
apiUtils.bookmarks.searchBookmarks.invalidate();
apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId });
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
@@ -76,6 +78,7 @@ export function useUpdateBookmark(
apiUtils.bookmarks.getBookmarks.invalidate();
apiUtils.bookmarks.searchBookmarks.invalidate();
apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId });
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
@@ -138,6 +141,7 @@ export function useUpdateBookmarkTags(
apiUtils.bookmarks.getBookmarks.invalidate({ tagId: id });
});
apiUtils.tags.list.invalidate();
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
diff --git a/packages/shared-react/hooks/lists.ts b/packages/shared-react/hooks/lists.ts
index 46477228..ecb5d408 100644
--- a/packages/shared-react/hooks/lists.ts
+++ b/packages/shared-react/hooks/lists.ts
@@ -47,6 +47,7 @@ export function useAddBookmarkToList(
apiUtils.lists.getListsOfBookmark.invalidate({
bookmarkId: req.bookmarkId,
});
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
@@ -63,6 +64,7 @@ export function useRemoveBookmarkFromList(
apiUtils.lists.getListsOfBookmark.invalidate({
bookmarkId: req.bookmarkId,
});
+ apiUtils.lists.stats.invalidate();
return opts[0]?.onSuccess?.(res, req, meta);
},
});
diff --git a/packages/trpc/routers/lists.ts b/packages/trpc/routers/lists.ts
index 59441879..f9e382f2 100644
--- a/packages/trpc/routers/lists.ts
+++ b/packages/trpc/routers/lists.ts
@@ -106,4 +106,15 @@ export const listsAppRouter = router({
const lists = await List.forBookmark(ctx, input.bookmarkId);
return { lists: lists.map((l) => l.list) };
}),
+ stats: authedProcedure
+ .output(
+ z.object({
+ stats: z.map(z.string(), z.number()),
+ }),
+ )
+ .query(async ({ ctx }) => {
+ const lists = await List.getAll(ctx);
+ const sizes = await Promise.all(lists.map((l) => l.getSize()));
+ return { stats: new Map(lists.map((l, i) => [l.list.id, sizes[i]])) };
+ }),
});