parent
c13d404776
commit
cbe5aebb41
@ -0,0 +1,40 @@
|
|||||||
|
import { Button } from "antd";
|
||||||
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
||||||
|
import { api } from "../../api";
|
||||||
|
import { useFilters } from "../../stores/useFilters";
|
||||||
|
import { usePointSelection } from "../../stores/usePointSelection";
|
||||||
|
import { STATUSES } from "../../config";
|
||||||
|
|
||||||
|
export const TakeToWorkButton = () => {
|
||||||
|
const { filters } = useFilters();
|
||||||
|
const { prediction, categories } = filters;
|
||||||
|
const { selection } = usePointSelection();
|
||||||
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
|
const { mutate } = useMutation({
|
||||||
|
mutationFn: () => {
|
||||||
|
const params = new URLSearchParams({
|
||||||
|
status: STATUSES.toWork,
|
||||||
|
"prediction_current[]": prediction,
|
||||||
|
"categories[]": categories,
|
||||||
|
"included[]": [...selection.included],
|
||||||
|
"excluded[]": [...selection.excluded],
|
||||||
|
});
|
||||||
|
|
||||||
|
return api.put(
|
||||||
|
`/api/placement_points/update_status?${params.toString()}`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
onSuccess: () => queryClient.invalidateQueries(["table", 1, filters]),
|
||||||
|
});
|
||||||
|
|
||||||
|
const takeToWork = () => {
|
||||||
|
mutate();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Button type="primary" block className={"mt-2"} onClick={takeToWork}>
|
||||||
|
Взять в работу
|
||||||
|
</Button>
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
import { create } from "zustand";
|
||||||
|
import { immer } from "zustand/middleware/immer";
|
||||||
|
|
||||||
|
const store = (set) => ({
|
||||||
|
point: null,
|
||||||
|
|
||||||
|
setClickedPoint: (point) => {
|
||||||
|
set((state) => {
|
||||||
|
if (!point) {
|
||||||
|
state.point = null;
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
state.point = point;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const useClickedPoint = create(immer(store));
|
||||||
Loading…
Reference in new issue