feat: update map, admin to and cache

This commit is contained in:
2026-05-08 13:33:41 +03:00
parent 4bda233b63
commit 193f53c029
22 changed files with 191 additions and 107 deletions

View File

@@ -9,7 +9,6 @@ import {
vehicleStore,
routeStore,
Vehicle,
carrierStore,
selectedCityStore,
menuStore,
VEHICLE_TYPES,
@@ -184,31 +183,14 @@ export const DevicesTable = observer(() => {
pageSize: 50,
});
const filterVehiclesBySelectedCity = (vehiclesList: Vehicle[]): Vehicle[] => {
const selectedCityId = selectedCityStore.selectedCityId;
const { selectedCityId } = selectedCityStore;
if (!selectedCityId) {
return vehiclesList;
}
const carriersInSelectedCityIds = new Set(
carrierStore.carriers.ru.data
.filter((carrier) => carrier.city_id === selectedCityId)
.map((carrier) => carrier.id),
const filteredVehicles = useMemo((): Vehicle[] => {
if (!selectedCityId) return [];
return (vehicles.data as Vehicle[]).filter(
(vehicle) => vehicle.vehicle.city_id === selectedCityId,
);
if (carriersInSelectedCityIds.size === 0) {
return [];
}
return vehiclesList.filter((vehicle) =>
carriersInSelectedCityIds.has(vehicle.vehicle.carrier_id),
);
};
const filteredVehicles = filterVehiclesBySelectedCity(
vehicles.data as Vehicle[],
);
}, [selectedCityId, vehicles.data]);
const rows = useMemo(
() => transformToRows(filteredVehicles),
@@ -748,13 +730,8 @@ export const DevicesTable = observer(() => {
setIsLoading(false);
};
fetchData();
}, [getDevices, getSnapshots, getVehicles, getRoutes, isMaintenanceOnly]);
}, [getDevices, getSnapshots, getVehicles, getRoutes, isMaintenanceOnly, selectedCityStore.cityVersion]);
useEffect(() => {
if (!isMaintenanceOnly) {
carrierStore.getCarriers("ru");
}
}, [isMaintenanceOnly]);
const handleOpenSendSnapshotModal = () => {
if (!canWriteDevices) {
@@ -888,6 +865,8 @@ export const DevicesTable = observer(() => {
>
{isLoading ? (
<CircularProgress size={20} />
) : !selectedCityId ? (
"Выберите город"
) : (
"Нет устройств для отображения"
)}
@@ -928,13 +907,17 @@ export const DevicesTable = observer(() => {
{!isCollapsed && (
<Box sx={{ p: 0 }}>
<DataGrid
rows={groupRows}
columns={visibleColumns}
checkboxSelection={canWriteDevices}
disableRowSelectionExcludeModel
disableRowSelectionOnClick
loading={isLoading}
paginationModel={paginationModel}
rows={groupRows}
columns={visibleColumns}
checkboxSelection={canWriteDevices}
disableRowSelectionExcludeModel
disableRowSelectionOnClick
onRowDoubleClick={(params) => {
if (canWriteDevices) {
navigate(`/vehicle/${params.row.vehicle_id}/edit`);
}
}}
loading={isLoading} paginationModel={paginationModel}
onPaginationModelChange={setPaginationModel}
pageSizeOptions={[50]}
onRowSelectionModelChange={