|
|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
import { DISABLED_FILTER_TEXT, STATUSES } from "../../../config";
|
|
|
|
|
import { DISABLED_FILTER_TEXT } from "../../../config";
|
|
|
|
|
import { Button, Tooltip } from "antd";
|
|
|
|
|
import { SelectedLocations } from "./SelectedLocations";
|
|
|
|
|
import { TakeToWorkButton } from "./TakeToWorkButton";
|
|
|
|
|
@ -13,35 +13,13 @@ import {
|
|
|
|
|
import { usePendingPointsFilters } from "../../../stores/usePendingPointsFilters";
|
|
|
|
|
import { ClearFiltersButton } from "../../../components/ClearFiltersButton";
|
|
|
|
|
import { getDynamicActiveFilters } from "../utils";
|
|
|
|
|
import { api, useCanEdit } from "../../../api";
|
|
|
|
|
import { useQuery } from "@tanstack/react-query";
|
|
|
|
|
import { useCanEdit } from "../../../api";
|
|
|
|
|
import { AdvancedFiltersWrapper } from "./AdvancedFilters/AdvancedFiltersWrapper.jsx";
|
|
|
|
|
|
|
|
|
|
const useGetPendingPointsRange = () => {
|
|
|
|
|
return useQuery(
|
|
|
|
|
["prediction-max-min"],
|
|
|
|
|
async () => {
|
|
|
|
|
const { data } = await api.get(
|
|
|
|
|
`/api/placement_points/filters?status[]=${STATUSES.pending}`
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
select: (data) => {
|
|
|
|
|
return {
|
|
|
|
|
prediction: [data.prediction_current[0], data.prediction_current[1]],
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const PendingPointsFilters = () => {
|
|
|
|
|
const hasManualEdits = useHasManualEdits();
|
|
|
|
|
const { reset: resetPointSelection } = usePointSelection();
|
|
|
|
|
const { filters, setRegion, clear } = usePendingPointsFilters();
|
|
|
|
|
const { data: fullRange, isInitialLoading } = useGetPendingPointsRange();
|
|
|
|
|
const { ranges, filters, setRegion, clear } = usePendingPointsFilters();
|
|
|
|
|
|
|
|
|
|
const [isSelectionEmpty, setIsSelectionEmpty] = useState(false);
|
|
|
|
|
|
|
|
|
|
@ -69,11 +47,11 @@ export const PendingPointsFilters = () => {
|
|
|
|
|
setHover(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const activeDynamicFilters = getDynamicActiveFilters(filters, fullRange, [
|
|
|
|
|
const activeDynamicFilters = getDynamicActiveFilters(filters, ranges, [
|
|
|
|
|
"prediction",
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
const clearFilters = () => clear(fullRange);
|
|
|
|
|
const clearFilters = () => clear(ranges);
|
|
|
|
|
|
|
|
|
|
const hasActiveFilters =
|
|
|
|
|
filters.region ||
|
|
|
|
|
@ -101,8 +79,8 @@ export const PendingPointsFilters = () => {
|
|
|
|
|
<CategoriesSelect disabled={hasManualEdits} />
|
|
|
|
|
<PredictionSlider
|
|
|
|
|
disabled={hasManualEdits}
|
|
|
|
|
fullRange={fullRange}
|
|
|
|
|
isLoading={isInitialLoading}
|
|
|
|
|
fullRange={ranges}
|
|
|
|
|
isLoading={false}
|
|
|
|
|
/>
|
|
|
|
|
<AdvancedFiltersWrapper />
|
|
|
|
|
</div>
|
|
|
|
|
|