Files
backup-tool/frontend/node_modules/@tanstack/react-query/build/legacy/useMutation.js
T
alex d3b92593d5 feat(frontend): add API client, layout, and routing
- Create Axios-based API client with sources, jobs, and dashboard endpoints
- Add responsive Layout component with navigation sidebar
- Set up React Router with Dashboard, Backups, and Settings routes
- Configure TanStack Query provider with default options
- Use lucide-react for navigation icons
2026-05-11 21:47:20 +02:00

45 lines
1.2 KiB
JavaScript

"use client";
// src/useMutation.ts
import * as React from "react";
import {
MutationObserver,
noop,
notifyManager,
shouldThrowError
} from "@tanstack/query-core";
import { useQueryClient } from "./QueryClientProvider.js";
function useMutation(options, queryClient) {
const client = useQueryClient(queryClient);
const [observer] = React.useState(
() => new MutationObserver(
client,
options
)
);
React.useEffect(() => {
observer.setOptions(options);
}, [observer, options]);
const result = React.useSyncExternalStore(
React.useCallback(
(onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),
[observer]
),
() => observer.getCurrentResult(),
() => observer.getCurrentResult()
);
const mutate = React.useCallback(
(variables, mutateOptions) => {
observer.mutate(variables, mutateOptions).catch(noop);
},
[observer]
);
if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {
throw result.error;
}
return { ...result, mutate, mutateAsync: result.mutate };
}
export {
useMutation
};
//# sourceMappingURL=useMutation.js.map