Get full range only for working points

dev
Platon Yasev 3 years ago
parent 266eceba70
commit 07c7ccaf0d

@ -3,7 +3,7 @@ import { otherPostamatesLayer } from "./layers-config";
import { useLayersVisibility } from "../../stores/useLayersVisibility"; import { useLayersVisibility } from "../../stores/useLayersVisibility";
import { LAYER_IDS } from "./constants"; import { LAYER_IDS } from "./constants";
const typeFilter = ["==", ["get", "type"], "Постамат"]; const typeFilter = ["==", ["get", "type"], "постамат"];
export const OtherPostamates = () => { export const OtherPostamates = () => {
const { isVisible } = useLayersVisibility(); const { isVisible } = useLayersVisibility();

@ -10,6 +10,7 @@ import { WorkingPointPopup } from "./mode-popup/WorkingPointPopup";
import { FeatureProperties } from "./mode-popup/FeatureProperties"; import { FeatureProperties } from "./mode-popup/FeatureProperties";
const SingleFeaturePopup = ({ feature }) => { const SingleFeaturePopup = ({ feature }) => {
console.log(feature);
const { mode } = useMode(); const { mode } = useMode();
const isRivals = const isRivals =
feature.layer?.id === LAYER_IDS.pvz || feature.layer?.id === LAYER_IDS.pvz ||

@ -29,7 +29,6 @@ const useGetPendingPointsRange = () => {
{ {
select: (data) => { select: (data) => {
return { return {
...data,
prediction: [data.prediction_current[0], data.prediction_current[1]], prediction: [data.prediction_current[0], data.prediction_current[1]],
}; };
}, },

@ -4,38 +4,11 @@ import { forwardRef } from "react";
import { MODES } from "../../config"; import { MODES } from "../../config";
import { PendingPointsFilters } from "./PendingPointsFilters/PendingPointsFilters"; import { PendingPointsFilters } from "./PendingPointsFilters/PendingPointsFilters";
import { OnApprovalPointsFilters } from "./OnApprovalPointsFilters/OnApprovalPointsFilters"; import { OnApprovalPointsFilters } from "./OnApprovalPointsFilters/OnApprovalPointsFilters";
import { useQuery } from "@tanstack/react-query";
import { api } from "../../api";
import { WorkingPointsFilters } from "./WorkingPointsFilters/WorkingPointsFilters"; import { WorkingPointsFilters } from "./WorkingPointsFilters/WorkingPointsFilters";
const useGetDataRange = () => {
return useQuery(
["max-min"],
async () => {
const { data } = await api.get(`/api/placement_points/filters/`);
return data;
},
{
select: (data) => {
return {
...data,
prediction: [data.prediction_current[0], data.prediction_current[1]],
deltaTraffic: [data.delta_current[0], data.delta_current[1]],
factTraffic: [data.fact[0], data.fact[1]],
age: [data.age_day[0], data.age_day[1]],
};
},
}
);
};
export const Sidebar = forwardRef(({ isCollapsed }, ref) => { export const Sidebar = forwardRef(({ isCollapsed }, ref) => {
const { mode } = useMode(); const { mode } = useMode();
const { data: filtersValueRange, isInitialLoading: isFullRangeLoading } =
useGetDataRange();
const getFilters = () => { const getFilters = () => {
if (mode === MODES.PENDING) { if (mode === MODES.PENDING) {
return <PendingPointsFilters />; return <PendingPointsFilters />;
@ -45,12 +18,7 @@ export const Sidebar = forwardRef(({ isCollapsed }, ref) => {
return <OnApprovalPointsFilters />; return <OnApprovalPointsFilters />;
} }
return ( return <WorkingPointsFilters />;
<WorkingPointsFilters
fullRange={filtersValueRange}
isFullRangeLoading={isFullRangeLoading}
/>
);
}; };
return ( return (

@ -30,8 +30,8 @@ export const FactTrafficSlider = ({ fullRange }) => {
title={"Фактический трафик"} title={"Фактический трафик"}
value={factTraffic} value={factTraffic}
onAfterChange={handleAfterChange} onAfterChange={handleAfterChange}
min={fullRange.fact[0]} min={fullRange.factTraffic[0]}
max={fullRange.fact[1]} max={fullRange.factTraffic[1]}
range range
/> />
); );

@ -6,10 +6,38 @@ import { AgeSlider } from "./AgeSlider";
import { ClearFiltersButton } from "../../../components/ClearFiltersButton"; import { ClearFiltersButton } from "../../../components/ClearFiltersButton";
import { getDynamicActiveFilters } from "../utils"; import { getDynamicActiveFilters } from "../utils";
import { Spin } from "antd"; import { Spin } from "antd";
import { useQuery } from "@tanstack/react-query";
import { api } from "../../../api.js";
import { STATUSES } from "../../../config.js";
export const WorkingPointsFilters = ({ fullRange, isFullRangeLoading }) => { const useGetDataRange = () => {
return useQuery(
["working-max-min"],
async () => {
const { data } = await api.get(
`/api/placement_points/filters?status[]=${STATUSES.working}`
);
return data;
},
{
select: (data) => {
return {
deltaTraffic: [data.delta_current[0], data.delta_current[1]],
factTraffic: [data.fact[0], data.fact[1]],
age: [data.age_day[0], data.age_day[1]],
};
},
}
);
};
export const WorkingPointsFilters = () => {
const { filters, setRegion, clear } = useWorkingPointsFilters(); const { filters, setRegion, clear } = useWorkingPointsFilters();
const { data: fullRange, isInitialLoading: isFullRangeLoading } =
useGetDataRange();
const activeDynamicFilters = getDynamicActiveFilters(filters, fullRange, [ const activeDynamicFilters = getDynamicActiveFilters(filters, fullRange, [
"deltaTraffic", "deltaTraffic",
"factTraffic", "factTraffic",

Loading…
Cancel
Save