update query integration

This commit is contained in:
yohlo
2025-09-24 08:04:09 -05:00
parent e4164cbc71
commit 6760ea46f9
4 changed files with 31 additions and 26 deletions

View File

@@ -52,6 +52,7 @@
"zustand": "^5.0.7"
},
"devDependencies": {
"@tanstack/react-router-ssr-query": "^1.132.2",
"@tanstack/router-plugin": "^1.132.2",
"@types/node": "^22.5.4",
"@types/pg": "^8.15.5",

View File

@@ -1,6 +1,6 @@
import { QueryClient } from "@tanstack/react-query";
import { createRouter as createTanStackRouter } from "@tanstack/react-router";
import { routerWithQueryClient } from "@tanstack/react-router-with-query";
import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query";
import { routeTree } from "./routeTree.gen";
import { DefaultCatchBoundary } from "../components/DefaultCatchBoundary";
import { defaultHeaderConfig } from "@/features/core/hooks/use-router-config";
@@ -18,24 +18,28 @@ export function getRouter() {
},
});
return routerWithQueryClient(
createTanStackRouter({
routeTree,
context: {
queryClient,
auth: undefined!,
header: defaultHeaderConfig,
refresh: [],
withPadding: true,
fullWidth: false,
},
defaultPreload: "intent",
defaultErrorComponent: DefaultCatchBoundary,
scrollRestoration: true,
defaultViewTransition: false,
}),
const router = createTanStackRouter({
routeTree,
context: {
queryClient,
auth: undefined!,
header: defaultHeaderConfig,
refresh: [],
withPadding: true,
fullWidth: false,
},
defaultPreload: "intent",
defaultErrorComponent: DefaultCatchBoundary,
scrollRestoration: true,
defaultViewTransition: false,
});
setupRouterSsrQueryIntegration({
router,
queryClient
);
})
return router;
}
declare module "@tanstack/react-router" {

View File

@@ -23,15 +23,15 @@ export function useOptimisticMutation<TData, TVariables = unknown>(
return { previousData };
},
onError: (error, variables, context) => {
onError: (error, variables, onMutateResult, context) => {
if (context && typeof context === 'object' && 'previousData' in context && context.previousData) {
queryClient.setQueryData(queryKey, context.previousData);
}
mutationOptions.onError?.(error, variables, context);
mutationOptions.onError?.(error, variables, onMutateResult, context);
},
onSettled: (data, error, variables, context) => {
onSettled: (data, error, variables, onMutateResult, context) => {
queryClient.invalidateQueries({ queryKey });
mutationOptions.onSettled?.(data, error, variables, context);
mutationOptions.onSettled?.(data, error, variables, onMutateResult, context);
}
});
}

View File

@@ -52,14 +52,14 @@ export function useServerMutation<TData, TVariables = unknown>(
throw error;
}
},
onSuccess: (data, variables, context) => {
onSuccess: (data, variables, onMutateResult, context) => {
if (showSuccessToast && successMessage) {
toast.success(successMessage);
}
onSuccess?.(data, variables, context);
onSuccess?.(data, variables, onMutateResult, context);
},
onError: (error, variables, context) => {
onError?.(error, variables, context);
onError: (error, variables, onMutateResult, context) => {
onError?.(error, variables, onMutateResult, context);
}
});
}