roverdevkit / webapp /frontend /src /hooks /use-optimize.ts
jjreif's picture
Deploy roverdevkit @ 2676a67
b3d14e3
Raw
History Blame Contribute Delete
1.04 kB
import { useMutation } from "@tanstack/react-query";
import { api } from "@/lib/api";
import type {
OptimizeCancelResponse,
OptimizeJobResponse,
OptimizeRequest,
OptimizeResultResponse,
} from "@/types/api";
/** `POST /optimize` mutation that queues an NSGA-II job. */
export function useStartOptimize() {
return useMutation<OptimizeJobResponse, Error, OptimizeRequest>({
mutationKey: ["optimize", "start"],
mutationFn: (req) => api.optimize(req),
});
}
/** Fetch the final/current state for an optimization job. */
export function useOptimizeResult() {
return useMutation<OptimizeResultResponse, Error, string>({
mutationKey: ["optimize", "result"],
mutationFn: (pathOrJobId) => api.optimizeResult(pathOrJobId),
});
}
/** Request cooperative cancellation for an optimization job. */
export function useCancelOptimize() {
return useMutation<OptimizeCancelResponse, Error, string>({
mutationKey: ["optimize", "cancel"],
mutationFn: (pathOrJobId) => api.cancelOptimize(pathOrJobId),
});
}