diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-02-23 22:50:12 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-02-23 23:16:52 +0000 |
| commit | 14e4fed321634dc014ad2f15cafef3ed0123855e (patch) | |
| tree | 0b7b1f1157bacea13b93161c07ab48561544fd28 /packages/shared-react | |
| parent | e5cb9aa848009ea22c1385e4d33b7edf372979fb (diff) | |
| download | karakeep-14e4fed321634dc014ad2f15cafef3ed0123855e.tar.zst | |
feat: Add a setting page to manage assets. Fixes #730
Diffstat (limited to 'packages/shared-react')
| -rw-r--r-- | packages/shared-react/hooks/assets.ts | 49 | ||||
| -rw-r--r-- | packages/shared-react/hooks/bookmarks.ts | 45 |
2 files changed, 49 insertions, 45 deletions
diff --git a/packages/shared-react/hooks/assets.ts b/packages/shared-react/hooks/assets.ts new file mode 100644 index 00000000..b9aeed26 --- /dev/null +++ b/packages/shared-react/hooks/assets.ts @@ -0,0 +1,49 @@ +import { api } from "../trpc"; + +export function useAttachBookmarkAsset( + ...opts: Parameters<typeof api.assets.attachAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.assets.attachAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + apiUtils.assets.list.invalidate(); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useReplaceBookmarkAsset( + ...opts: Parameters<typeof api.assets.replaceAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.assets.replaceAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + apiUtils.assets.list.invalidate(); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} + +export function useDetachBookmarkAsset( + ...opts: Parameters<typeof api.assets.detachAsset.useMutation> +) { + const apiUtils = api.useUtils(); + return api.assets.detachAsset.useMutation({ + ...opts[0], + onSuccess: (res, req, meta) => { + apiUtils.bookmarks.getBookmarks.invalidate(); + apiUtils.bookmarks.searchBookmarks.invalidate(); + apiUtils.bookmarks.getBookmark.invalidate({ bookmarkId: req.bookmarkId }); + apiUtils.assets.list.invalidate(); + return opts[0]?.onSuccess?.(res, req, meta); + }, + }); +} diff --git a/packages/shared-react/hooks/bookmarks.ts b/packages/shared-react/hooks/bookmarks.ts index f4dd203c..89715e4f 100644 --- a/packages/shared-react/hooks/bookmarks.ts +++ b/packages/shared-react/hooks/bookmarks.ts @@ -190,48 +190,3 @@ 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); - }, - }); -} |
