import { api } from "../trpc"; export function useUpdateLabel( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.tags.update.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.labels.list.invalidate(); apiUtils.labels.get.invalidate({ labelId: res.id }); // apiUtils.bookmarks.getBookmarks.invalidate({ // labelId: res.id; // TODO: Maybe we can only look at the cache and invalidate only affected bookmarks // apiUtils.bookmarks.getBookmark.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); } export function useDeleteLabel( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.labels.delete.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.labels.list.invalidate(); // apiUtils.bookmarks.getBookmark.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); } export function useDeleteUnusedTags( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.tags.deleteUnused.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.tags.list.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); }