|
|
|
|
@ -4,26 +4,15 @@ import { Collapse } from "antd";
|
|
|
|
|
import React, { useMemo } from "react";
|
|
|
|
|
import { Title } from "../../../../components/Title.jsx";
|
|
|
|
|
import { usePostamatesAndPvzGroups } from "../../../../api.js";
|
|
|
|
|
import { getFilteredGroups } from "../../../../utils.js";
|
|
|
|
|
|
|
|
|
|
export const AdvancedFilters = () => {
|
|
|
|
|
const {
|
|
|
|
|
filters,
|
|
|
|
|
setFilterWithKey,
|
|
|
|
|
ranges
|
|
|
|
|
} = usePendingPointsFilters();
|
|
|
|
|
const { filters, ranges } = usePendingPointsFilters();
|
|
|
|
|
|
|
|
|
|
const { data: postamatesAndPvzGroups } = usePostamatesAndPvzGroups();
|
|
|
|
|
|
|
|
|
|
const filteredPostamatesGroups = useMemo(() => {
|
|
|
|
|
if (!postamatesAndPvzGroups) return [];
|
|
|
|
|
return postamatesAndPvzGroups
|
|
|
|
|
.filter((category) => category.visible)
|
|
|
|
|
.map((category) => {
|
|
|
|
|
return {
|
|
|
|
|
...category,
|
|
|
|
|
groups: [...category.groups.filter((group) => group.visible)],
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return getFilteredGroups(postamatesAndPvzGroups);
|
|
|
|
|
}, [postamatesAndPvzGroups]);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
@ -45,7 +34,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.doors__gt, filters.doors__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во подъездов в жилом доме"}
|
|
|
|
|
fullRange={ranges.doors || [0, 0]}
|
|
|
|
|
filterKey={"doors"}
|
|
|
|
|
@ -54,7 +42,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.flat_cnt__gt, filters.flat_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во квартир в подъезде жилого дома"}
|
|
|
|
|
fullRange={ranges.flat_cnt || [0, 0]}
|
|
|
|
|
filterKey={"flat_cnt"}
|
|
|
|
|
@ -82,23 +69,22 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.rival_post_cnt__gt, filters.rival_post_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во постаматов других сетей"}
|
|
|
|
|
fullRange={[0, 5000]}
|
|
|
|
|
fullRange={ranges.rival_post_cnt || [0, 0]}
|
|
|
|
|
filterKey={"rival_post_cnt"}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.rival_pvz_cnt__gt, filters.rival_pvz_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во ПВЗ"}
|
|
|
|
|
fullRange={[0, 5000]}
|
|
|
|
|
fullRange={ranges.rival_pvz_cnt || [0, 0]}
|
|
|
|
|
filterKey={"rival_pvz_cnt"}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.target_post_cnt__gt, filters.target_post_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во постаматов Мой постамат"}
|
|
|
|
|
fullRange={ranges.target_post_cnt || [0, 0]}
|
|
|
|
|
filterKey={"target_post_cnt"}
|
|
|
|
|
@ -107,7 +93,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.flats_cnt__gt, filters.flats_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во квартир в окрестности"}
|
|
|
|
|
fullRange={ranges.flats_cnt || [0, 0]}
|
|
|
|
|
filterKey={"flats_cnt"}
|
|
|
|
|
@ -116,7 +101,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.tc_cnt__gt, filters.tc_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во торговых центров"}
|
|
|
|
|
fullRange={ranges.tc_cnt || [0, 0]}
|
|
|
|
|
filterKey={"tc_cnt"}
|
|
|
|
|
@ -125,25 +109,22 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.culture_cnt__gt, filters.culture_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во объектов культуры (театры, музей и тд)"}
|
|
|
|
|
fullRange={ranges.tc_cnt || [0, 0]}
|
|
|
|
|
filterKey={"tc_cnt"}
|
|
|
|
|
fullRange={ranges.culture_cnt || [0, 0]}
|
|
|
|
|
filterKey={"culture_cnt"}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.mfc_cnt__gt, filters.mfc_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во МФЦ"}
|
|
|
|
|
fullRange={ranges.tc_cnt || [0, 0]}
|
|
|
|
|
filterKey={"tc_cnt"}
|
|
|
|
|
fullRange={ranges.mfc_cnt || [0, 0]}
|
|
|
|
|
filterKey={"mfc_cnt"}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.public_stop_cnt__gt, filters.public_stop_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во остановок ОТ"}
|
|
|
|
|
fullRange={ranges.public_stop_cnt || [0, 0]}
|
|
|
|
|
filterKey={"public_stop_cnt"}
|
|
|
|
|
@ -152,7 +133,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.supermarket_cnt__gt, filters.supermarket_cnt__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Кол-во супермаркетов"}
|
|
|
|
|
fullRange={ranges.supermarket_cnt || [0, 0]}
|
|
|
|
|
filterKey={"supermarket_cnt"}
|
|
|
|
|
@ -161,7 +141,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.target_dist__gt, filters.target_dist__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Расстояние до постамата Мой постамат"}
|
|
|
|
|
fullRange={ranges.target_dist || [0, 0]}
|
|
|
|
|
filterKey={"target_dist"}
|
|
|
|
|
@ -170,7 +149,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters.metro_dist__gt, filters.metro_dist__lt]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={"Расстояние до метро"}
|
|
|
|
|
fullRange={ranges.metro_dist || [0, 0]}
|
|
|
|
|
filterKey={"metro_dist"}
|
|
|
|
|
@ -183,6 +161,7 @@ export const AdvancedFilters = () => {
|
|
|
|
|
{filteredPostamatesGroups.map((category) => {
|
|
|
|
|
return (
|
|
|
|
|
<Collapse
|
|
|
|
|
key={`filter_${category.id}`}
|
|
|
|
|
bordered={false}
|
|
|
|
|
expandIconPosition={"end"}
|
|
|
|
|
style={{
|
|
|
|
|
@ -198,10 +177,9 @@ export const AdvancedFilters = () => {
|
|
|
|
|
<div className="mt-4 mb-12">
|
|
|
|
|
{category.groups.map((group) => {
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<div key={group.id}>
|
|
|
|
|
<FilterSlider
|
|
|
|
|
filterRange={[filters[`d${group.id}__gt`], filters[`d${group.id}__lt`]]}
|
|
|
|
|
setFilterRange={setFilterWithKey}
|
|
|
|
|
title={group.name}
|
|
|
|
|
fullRange={ranges[`d${group.id}`] || [0, 0]}
|
|
|
|
|
filterKey={`d${group.id}`}
|
|
|
|
|
@ -211,7 +189,6 @@ export const AdvancedFilters = () => {
|
|
|
|
|
)
|
|
|
|
|
})}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</Collapse.Panel>
|
|
|
|
|
</Collapse>
|
|
|
|
|
)
|
|
|
|
|
|