|
|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
import { DISABLED_FILTER_TEXT } from "../../../config";
|
|
|
|
|
import { Button, Tooltip } from "antd";
|
|
|
|
|
import {Button, Spin, Tooltip} from "antd";
|
|
|
|
|
import { SelectedLocations } from "./SelectedLocations";
|
|
|
|
|
import { TakeToWorkButton } from "./TakeToWorkButton";
|
|
|
|
|
import { RegionSelect } from "../../../components/RegionSelect";
|
|
|
|
|
@ -13,13 +13,30 @@ import {
|
|
|
|
|
import {RANGE_FILTERS_KEYS, usePendingPointsFilters} from "../../../stores/usePendingPointsFilters";
|
|
|
|
|
import { ClearFiltersButton } from "../../../components/ClearFiltersButton";
|
|
|
|
|
import { getDynamicActiveFilters } from "../utils";
|
|
|
|
|
import { useCanEdit } from "../../../api";
|
|
|
|
|
import { getApiName, useCanEdit, useGetPendingPointsRange } from "../../../api";
|
|
|
|
|
import { AdvancedFiltersWrapper } from "./AdvancedFilters/AdvancedFiltersWrapper.jsx";
|
|
|
|
|
|
|
|
|
|
export const PendingPointsFilters = () => {
|
|
|
|
|
const hasManualEdits = useHasManualEdits();
|
|
|
|
|
const { reset: resetPointSelection } = usePointSelection();
|
|
|
|
|
const { ranges, filters, setRegion, setFilterWithKey, setPrediction, setCategories } = usePendingPointsFilters();
|
|
|
|
|
const { ranges, filters, setRegion, setFilterWithKey, setPrediction, setCategories, setRanges } = usePendingPointsFilters();
|
|
|
|
|
const link = getApiName();
|
|
|
|
|
const { data } = useGetPendingPointsRange(link);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const newRanges = data?.fullRange;
|
|
|
|
|
if (!newRanges) return;
|
|
|
|
|
RANGE_FILTERS_KEYS.map((key) => {
|
|
|
|
|
const gtChanged = ranges[key][0] !== newRanges[key][0];
|
|
|
|
|
const ltChanged = ranges[key][1] !== newRanges[key][1];
|
|
|
|
|
|
|
|
|
|
if (gtChanged || ltChanged) setFilterWithKey(newRanges[key], key);
|
|
|
|
|
});
|
|
|
|
|
const gtChanged = ranges.prediction[0] !== newRanges.prediction[0];
|
|
|
|
|
const ltChanged = ranges.prediction[1] !== newRanges.prediction[1];
|
|
|
|
|
if (gtChanged || ltChanged) setPrediction(newRanges.prediction);
|
|
|
|
|
setRanges({...ranges, ...newRanges});
|
|
|
|
|
}, [data]);
|
|
|
|
|
|
|
|
|
|
const [isSelectionEmpty, setIsSelectionEmpty] = useState(false);
|
|
|
|
|
|
|
|
|
|
@ -84,12 +101,16 @@ export const PendingPointsFilters = () => {
|
|
|
|
|
onChange={setRegion}
|
|
|
|
|
/>
|
|
|
|
|
<CategoriesSelect disabled={hasManualEdits} />
|
|
|
|
|
<PredictionSlider
|
|
|
|
|
disabled={hasManualEdits}
|
|
|
|
|
fullRange={ranges}
|
|
|
|
|
isLoading={false}
|
|
|
|
|
/>
|
|
|
|
|
<AdvancedFiltersWrapper />
|
|
|
|
|
{data?.isLoading ? <Spin /> :
|
|
|
|
|
<>
|
|
|
|
|
<PredictionSlider
|
|
|
|
|
disabled={hasManualEdits}
|
|
|
|
|
fullRange={ranges}
|
|
|
|
|
isLoading={false}
|
|
|
|
|
/>
|
|
|
|
|
<AdvancedFiltersWrapper />
|
|
|
|
|
</>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{hasActiveFilters && (
|
|
|
|
|
|