import { api } from "../trpc"; export function useCreateHighlight( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.highlights.create.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.highlights.getForBookmark.invalidate({ bookmarkId: req.bookmarkId, }); apiUtils.highlights.getAll.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); } export function useUpdateHighlight( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.highlights.update.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.highlights.getForBookmark.invalidate({ bookmarkId: res.bookmarkId, }); apiUtils.highlights.getAll.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); } export function useDeleteHighlight( ...opts: Parameters ) { const apiUtils = api.useUtils(); return api.highlights.delete.useMutation({ ...opts[0], onSuccess: (res, req, meta) => { apiUtils.highlights.getForBookmark.invalidate({ bookmarkId: res.bookmarkId, }); apiUtils.highlights.getAll.invalidate(); return opts[0]?.onSuccess?.(res, req, meta); }, }); }