From 79d61be7e15dc5d23fb687a5f71e0097088a99ac Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 7 Apr 2024 18:30:00 +0100 Subject: feature: Extract hook logic into separate package and add a new action bar in bookmark preview --- packages/shared-react/hooks/bookmarks.ts | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/shared-react/hooks/bookmarks.ts (limited to 'packages/shared-react/hooks/bookmarks.ts') diff --git a/packages/shared-react/hooks/bookmarks.ts b/packages/shared-react/hooks/bookmarks.ts new file mode 100644 index 00000000..7349e680 --- /dev/null +++ b/packages/shared-react/hooks/bookmarks.ts @@ -0,0 +1,43 @@ +import { api } from "../trpc"; + +export function useDeleteBookmark( + ...opts: Parameters +) { + const apiUtils = api.useUtils(); + return api.bookmarks.deleteBookmark.useMutation({ + ...opts, + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useUpdateBookmark( + ...opts: Parameters +) { + const apiUtils = api.useUtils(); + return api.bookmarks.updateBookmark.useMutation({ + ...opts, + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useRecrawlBookmark( + ...opts: Parameters +) { + const apiUtils = api.useUtils(); + return api.bookmarks.recrawlBookmark.useMutation({ + ...opts, + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} -- cgit v1.2.3-70-g09d2