diff options
| author | MohamedBassem <me@mbassem.com> | 2024-04-07 18:30:00 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-04-07 19:00:00 +0100 |
| commit | 79d61be7e15dc5d23fb687a5f71e0097088a99ac (patch) | |
| tree | da72f19cdb74ef4ed2a75bcfddd13bdfb874f205 /packages/shared-react/hooks | |
| parent | 44918316007ed3153dc802a4b11db3ea09024a8b (diff) | |
| download | karakeep-79d61be7e15dc5d23fb687a5f71e0097088a99ac.tar.zst | |
feature: Extract hook logic into separate package and add a new action bar in bookmark preview
Diffstat (limited to 'packages/shared-react/hooks')
| -rw-r--r-- | packages/shared-react/hooks/bookmarks.ts | 43 | ||||
| -rw-r--r-- | packages/shared-react/hooks/lists.ts | 14 |
2 files changed, 57 insertions, 0 deletions
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<typeof api.bookmarks.deleteBookmark.useMutation> +) { + 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<typeof api.bookmarks.updateBookmark.useMutation> +) { + 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<typeof api.bookmarks.recrawlBookmark.useMutation> +) { + 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); + }, + }); +} diff --git a/packages/shared-react/hooks/lists.ts b/packages/shared-react/hooks/lists.ts new file mode 100644 index 00000000..5cfcd194 --- /dev/null +++ b/packages/shared-react/hooks/lists.ts @@ -0,0 +1,14 @@ +import { api } from "../trpc"; + +export function useRemoveBookmarkFromList( + ...opts: Parameters<typeof api.lists.removeFromList.useMutation> +) { + const apiUtils = api.useUtils(); + return api.lists.removeFromList.useMutation({ + ...opts, + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate({ listId: req.listId }); + opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} |
