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