From 14e4fed321634dc014ad2f15cafef3ed0123855e Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 23 Feb 2025 22:50:12 +0000 Subject: feat: Add a setting page to manage assets. Fixes #730 --- packages/shared-react/hooks/assets.ts | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/shared-react/hooks/assets.ts (limited to 'packages/shared-react/hooks/assets.ts') 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 +) { + 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 +) { + 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 +) { + 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); + }, + }); +} -- cgit v1.2.3-70-g09d2