diff options
| author | MohamedBassem <me@mbassem.com> | 2024-09-22 14:56:19 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-09-22 15:04:20 +0000 |
| commit | a770e55520245b7afc2b7a30aa6127eebcb6ea0d (patch) | |
| tree | 7a2e4041e2d16413ee0e8dd060be41b58253c995 /packages/shared-react | |
| parent | 55f5c7f40d6569d0769a3b7a9060db5ec1d3b93b (diff) | |
| download | karakeep-a770e55520245b7afc2b7a30aa6127eebcb6ea0d.tar.zst | |
feature(web): Show attachments and allow users to manipulate them.
Diffstat (limited to 'packages/shared-react')
| -rw-r--r-- | packages/shared-react/hooks/bookmarks.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/shared-react/hooks/bookmarks.ts b/packages/shared-react/hooks/bookmarks.ts index 43f97fc1..cba4d107 100644 --- a/packages/shared-react/hooks/bookmarks.ts +++ b/packages/shared-react/hooks/bookmarks.ts @@ -175,3 +175,48 @@ export function useBookmarkPostCreationHook() { return Promise.all(promises); }; } + +export function useAttachBookmarkAsset( + ...opts: Parameters<typeof api.bookmarks.attachAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.bookmarks.attachAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useReplaceBookmarkAsset( + ...opts: Parameters<typeof api.bookmarks.replaceAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.bookmarks.replaceAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useDetachBookmarkAsset( + ...opts: Parameters<typeof api.bookmarks.detachAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.bookmarks.detachAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} |
