From 5e0b56c7dc96c844f13ef49cdb6f7fa8a37b6277 Mon Sep 17 00:00:00 2001 From: itoshi Date: Sun, 5 Apr 2026 14:37:27 +0300 Subject: [PATCH] feat: filter route by city_id --- src/pages/Route/RouteListPage/index.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/pages/Route/RouteListPage/index.tsx b/src/pages/Route/RouteListPage/index.tsx index 1d7c299..34ce945 100644 --- a/src/pages/Route/RouteListPage/index.tsx +++ b/src/pages/Route/RouteListPage/index.tsx @@ -1,6 +1,6 @@ import { DataGrid, GridColDef, GridRenderCellParams } from "@mui/x-data-grid"; import { ruRU } from "@mui/x-data-grid/locales"; -import { authStore, carrierStore, languageStore, routeStore } from "@shared"; +import { authStore, carrierStore, languageStore, routeStore, selectedCityStore } from "@shared"; import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import { Map, Pencil, Trash2, Minus } from "lucide-react"; @@ -146,7 +146,20 @@ export const RouteListPage = observer(() => { }] : []), ]; - const rows = routes.data.map((route) => ({ + const filteredRoutes = () => { + const { selectedCityId } = selectedCityStore; + if (!selectedCityId) { + return routes.data; + } + const cityCarrierIds = new Set( + carriers["ru"].data + .filter((c) => c.city_id === selectedCityId) + .map((c) => c.id) + ); + return routes.data.filter((route) => cityCarrierIds.has(route.carrier_id)); + }; + + const rows = filteredRoutes().map((route) => ({ id: route.id, carrier_id: route.carrier_id, route_number: route.route_number,