aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared-react/hooks/users.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2026-02-01 12:29:54 +0000
committerGitHub <noreply@github.com>2026-02-01 12:29:54 +0000
commit65f6e83f11c82b0ec762e11f3392a80e614ee69a (patch)
tree945d8d73122f07fe6a77c2bd3ac9db566939ba3b /packages/shared-react/hooks/users.ts
parente516a525bca6f319a2f003e9677624e968b277bf (diff)
downloadkarakeep-65f6e83f11c82b0ec762e11f3392a80e614ee69a.tar.zst
refactor: migrate trpc to the new react query integration mode (#2438)
* refactor: migrate trpc to the new react query integration mode * more fixes * more migrations * upgrade trpc client
Diffstat (limited to 'packages/shared-react/hooks/users.ts')
-rw-r--r--packages/shared-react/hooks/users.ts56
1 files changed, 34 insertions, 22 deletions
diff --git a/packages/shared-react/hooks/users.ts b/packages/shared-react/hooks/users.ts
index b1909761..221681a4 100644
--- a/packages/shared-react/hooks/users.ts
+++ b/packages/shared-react/hooks/users.ts
@@ -1,37 +1,49 @@
-import { api } from "../trpc";
+import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
+
+import { useTRPC } from "../trpc";
+
+type TRPCApi = ReturnType<typeof useTRPC>;
export function useUpdateUserSettings(
- ...opts: Parameters<typeof api.users.updateSettings.useMutation>
+ opts?: Parameters<TRPCApi["users"]["updateSettings"]["mutationOptions"]>[0],
) {
- const apiUtils = api.useUtils();
- return api.users.updateSettings.useMutation({
- ...opts[0],
- onSuccess: (res, req, meta, context) => {
- apiUtils.users.settings.invalidate();
- return opts[0]?.onSuccess?.(res, req, meta, context);
- },
- });
+ const api = useTRPC();
+ const queryClient = useQueryClient();
+ return useMutation(
+ api.users.updateSettings.mutationOptions({
+ ...opts,
+ onSuccess: (res, req, meta, context) => {
+ queryClient.invalidateQueries(api.users.settings.pathFilter());
+ return opts?.onSuccess?.(res, req, meta, context);
+ },
+ }),
+ );
}
export function useUpdateUserAvatar(
- ...opts: Parameters<typeof api.users.updateAvatar.useMutation>
+ opts?: Parameters<TRPCApi["users"]["updateAvatar"]["mutationOptions"]>[0],
) {
- const apiUtils = api.useUtils();
- return api.users.updateAvatar.useMutation({
- ...opts[0],
- onSuccess: (res, req, meta, context) => {
- apiUtils.users.whoami.invalidate();
- return opts[0]?.onSuccess?.(res, req, meta, context);
- },
- });
+ const api = useTRPC();
+ const queryClient = useQueryClient();
+ return useMutation(
+ api.users.updateAvatar.mutationOptions({
+ ...opts,
+ onSuccess: (res, req, meta, context) => {
+ queryClient.invalidateQueries(api.users.whoami.pathFilter());
+ return opts?.onSuccess?.(res, req, meta, context);
+ },
+ }),
+ );
}
export function useDeleteAccount(
- ...opts: Parameters<typeof api.users.deleteAccount.useMutation>
+ opts?: Parameters<TRPCApi["users"]["deleteAccount"]["mutationOptions"]>[0],
) {
- return api.users.deleteAccount.useMutation(opts[0]);
+ const api = useTRPC();
+ return useMutation(api.users.deleteAccount.mutationOptions(opts));
}
export function useWhoAmI() {
- return api.users.whoami.useQuery();
+ const api = useTRPC();
+ return useQuery(api.users.whoami.queryOptions());
}