aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared-react
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-02-23 22:50:12 +0000
committerMohamed Bassem <me@mbassem.com>2025-02-23 23:16:52 +0000
commit14e4fed321634dc014ad2f15cafef3ed0123855e (patch)
tree0b7b1f1157bacea13b93161c07ab48561544fd28 /packages/shared-react
parente5cb9aa848009ea22c1385e4d33b7edf372979fb (diff)
downloadkarakeep-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.ts49
-rw-r--r--packages/shared-react/hooks/bookmarks.ts45
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);
- },
- });
-}