From 65f6e83f11c82b0ec762e11f3392a80e614ee69a Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 1 Feb 2026 12:29:54 +0000 Subject: 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 --- packages/shared-react/hooks/users.ts | 56 ++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'packages/shared-react/hooks/users.ts') 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; export function useUpdateUserSettings( - ...opts: Parameters + opts?: Parameters[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 + opts?: Parameters[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 + opts?: Parameters[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()); } -- cgit v1.2.3-70-g09d2