fix: fix bug with stations in the route
This commit is contained in:
@@ -162,7 +162,10 @@ const LinkedItemsContentsInner = <
|
|||||||
|
|
||||||
const filteredAvailableItems = availableItems.filter((item) => {
|
const filteredAvailableItems = availableItems.filter((item) => {
|
||||||
if (!searchQuery.trim()) return true;
|
if (!searchQuery.trim()) return true;
|
||||||
return String(item.name).toLowerCase().includes(searchQuery.toLowerCase());
|
const query = searchQuery.toLowerCase();
|
||||||
|
const name = String(item.name || "").toLowerCase();
|
||||||
|
const description = String(item.description || "").toLowerCase();
|
||||||
|
return name.includes(query) || description.includes(query);
|
||||||
});
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -206,12 +209,11 @@ const LinkedItemsContentsInner = <
|
|||||||
authInstance
|
authInstance
|
||||||
.post(`/${parentResource}/${parentId}/${childResource}`, {
|
.post(`/${parentResource}/${parentId}/${childResource}`, {
|
||||||
stations: reorderedItems.map((item) => {
|
stations: reorderedItems.map((item) => {
|
||||||
const stationData: any = { id: item.id };
|
|
||||||
const transfers = getStationTransfers(item.id, item.transfers);
|
const transfers = getStationTransfers(item.id, item.transfers);
|
||||||
if (transfers) {
|
return {
|
||||||
stationData.transfers = transfers;
|
...item,
|
||||||
}
|
transfers: transfers || item.transfers,
|
||||||
return stationData;
|
};
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@@ -263,24 +265,23 @@ const LinkedItemsContentsInner = <
|
|||||||
const requestData = {
|
const requestData = {
|
||||||
stations: insertAtPosition(
|
stations: insertAtPosition(
|
||||||
linkedItems.map((item) => {
|
linkedItems.map((item) => {
|
||||||
const stationData: any = { id: item.id };
|
|
||||||
const transfers = getStationTransfers(item.id, item.transfers);
|
const transfers = getStationTransfers(item.id, item.transfers);
|
||||||
if (transfers) {
|
return {
|
||||||
stationData.transfers = transfers;
|
...item,
|
||||||
}
|
transfers: transfers || item.transfers,
|
||||||
return stationData;
|
};
|
||||||
}),
|
}),
|
||||||
position,
|
position,
|
||||||
(() => {
|
(() => {
|
||||||
const newStationData: any = { id: selectedItemId };
|
if (!selectedItem) return { id: selectedItemId };
|
||||||
const transfers = getStationTransfers(
|
const transfers = getStationTransfers(
|
||||||
selectedItemId,
|
selectedItemId,
|
||||||
selectedItem?.transfers
|
selectedItem.transfers
|
||||||
);
|
);
|
||||||
if (transfers) {
|
return {
|
||||||
newStationData.transfers = transfers;
|
...selectedItem,
|
||||||
}
|
transfers: transfers || selectedItem.transfers,
|
||||||
return newStationData;
|
};
|
||||||
})()
|
})()
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
@@ -365,22 +366,21 @@ const LinkedItemsContentsInner = <
|
|||||||
setIsLinkingBulk(true);
|
setIsLinkingBulk(true);
|
||||||
const selectedStations = Array.from(selectedItems).map((id) => {
|
const selectedStations = Array.from(selectedItems).map((id) => {
|
||||||
const item = allItems.find((item) => item.id === id);
|
const item = allItems.find((item) => item.id === id);
|
||||||
const stationData: any = { id };
|
if (!item) return { id };
|
||||||
const transfers = getStationTransfers(id, item?.transfers);
|
const transfers = getStationTransfers(id, item.transfers);
|
||||||
if (transfers) {
|
return {
|
||||||
stationData.transfers = transfers;
|
...item,
|
||||||
}
|
transfers: transfers || item.transfers,
|
||||||
return stationData;
|
};
|
||||||
});
|
});
|
||||||
const requestData = {
|
const requestData = {
|
||||||
stations: [
|
stations: [
|
||||||
...linkedItems.map((item) => {
|
...linkedItems.map((item) => {
|
||||||
const stationData: any = { id: item.id };
|
|
||||||
const transfers = getStationTransfers(item.id, item.transfers);
|
const transfers = getStationTransfers(item.id, item.transfers);
|
||||||
if (transfers) {
|
return {
|
||||||
stationData.transfers = transfers;
|
...item,
|
||||||
}
|
transfers: transfers || item.transfers,
|
||||||
return stationData;
|
};
|
||||||
}),
|
}),
|
||||||
...selectedStations,
|
...selectedStations,
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ export const MapDataProvider = observer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setIconSize(size: number) {
|
function setIconSize(size: number) {
|
||||||
const clamped = Math.max(50, Math.min(300, size));
|
const clamped = Math.max(1, Math.min(300, size));
|
||||||
setRouteChanges((prev) => {
|
setRouteChanges((prev) => {
|
||||||
if (prev.icon_size === clamped) {
|
if (prev.icon_size === clamped) {
|
||||||
return prev;
|
return prev;
|
||||||
@@ -179,7 +179,7 @@ export const MapDataProvider = observer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setFontSize(size: number) {
|
function setFontSize(size: number) {
|
||||||
const clamped = Math.max(50, Math.min(300, size));
|
const clamped = Math.max(1, Math.min(300, size));
|
||||||
setRouteChanges((prev) => {
|
setRouteChanges((prev) => {
|
||||||
if (prev.font_size === clamped) {
|
if (prev.font_size === clamped) {
|
||||||
return prev;
|
return prev;
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export function RightSidebar() {
|
|||||||
if (!Number.isFinite(value)) {
|
if (!Number.isFinite(value)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const clamped = Math.max(50, Math.min(300, Math.round(value)));
|
const clamped = Math.max(1, Math.min(300, Math.round(value)));
|
||||||
setIconSize(clamped);
|
setIconSize(clamped);
|
||||||
updateIconSize(clamped);
|
updateIconSize(clamped);
|
||||||
};
|
};
|
||||||
@@ -110,7 +110,7 @@ export function RightSidebar() {
|
|||||||
if (!Number.isFinite(value)) {
|
if (!Number.isFinite(value)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const clamped = Math.max(50, Math.min(300, Math.round(value)));
|
const clamped = Math.max(1, Math.min(300, Math.round(value)));
|
||||||
setFontSize(clamped);
|
setFontSize(clamped);
|
||||||
updateFontSize(clamped);
|
updateFontSize(clamped);
|
||||||
};
|
};
|
||||||
@@ -307,60 +307,58 @@ export function RightSidebar() {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Typography variant="body2" sx={{ color: "#fff", textAlign: "center" }}>
|
<TextField
|
||||||
Размер иконок: {iconSize}%
|
type="number"
|
||||||
</Typography>
|
label="Размер иконок (%)"
|
||||||
|
variant="filled"
|
||||||
<Slider
|
|
||||||
value={iconSize}
|
value={iconSize}
|
||||||
onChange={(_, value) => {
|
onChange={(e) => {
|
||||||
if (typeof value === "number") {
|
const value = Number(e.target.value);
|
||||||
|
if (!isNaN(value)) {
|
||||||
handleIconSizeChange(value);
|
handleIconSizeChange(value);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
min={50}
|
style={{ backgroundColor: "#222", borderRadius: 4 }}
|
||||||
max={300}
|
|
||||||
step={1}
|
|
||||||
sx={{
|
sx={{
|
||||||
|
"& .MuiInputLabel-root": {
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
"& .MuiSlider-thumb": {
|
|
||||||
backgroundColor: "#fff",
|
|
||||||
},
|
},
|
||||||
"& .MuiSlider-track": {
|
"& .MuiInputBase-input": {
|
||||||
backgroundColor: "#fff",
|
color: "#fff",
|
||||||
},
|
|
||||||
"& .MuiSlider-rail": {
|
|
||||||
backgroundColor: "#666",
|
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
inputProps={{
|
||||||
|
min: 1,
|
||||||
|
max: 300,
|
||||||
|
step: 1,
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Typography variant="body2" sx={{ color: "#fff", textAlign: "center" }}>
|
<TextField
|
||||||
Размер шрифта: {fontSize}%
|
type="number"
|
||||||
</Typography>
|
label="Размер шрифта (%)"
|
||||||
|
variant="filled"
|
||||||
<Slider
|
|
||||||
value={fontSize}
|
value={fontSize}
|
||||||
onChange={(_, value) => {
|
onChange={(e) => {
|
||||||
if (typeof value === "number") {
|
const value = Number(e.target.value);
|
||||||
|
if (!isNaN(value)) {
|
||||||
handleFontSizeChange(value);
|
handleFontSizeChange(value);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
min={50}
|
style={{ backgroundColor: "#222", borderRadius: 4 }}
|
||||||
max={300}
|
|
||||||
step={1}
|
|
||||||
sx={{
|
sx={{
|
||||||
|
"& .MuiInputLabel-root": {
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
"& .MuiSlider-thumb": {
|
|
||||||
backgroundColor: "#fff",
|
|
||||||
},
|
},
|
||||||
"& .MuiSlider-track": {
|
"& .MuiInputBase-input": {
|
||||||
backgroundColor: "#fff",
|
color: "#fff",
|
||||||
},
|
|
||||||
"& .MuiSlider-rail": {
|
|
||||||
backgroundColor: "#666",
|
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
inputProps={{
|
||||||
|
min: 1,
|
||||||
|
max: 300,
|
||||||
|
step: 1,
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { coordinatesToLocal, localToCoordinates } from "../utils";
|
|||||||
import { BACKGROUND_COLOR, SCALE_FACTOR, UP_SCALE } from "../Constants";
|
import { BACKGROUND_COLOR, SCALE_FACTOR, UP_SCALE } from "../Constants";
|
||||||
import { languageStore } from "@shared";
|
import { languageStore } from "@shared";
|
||||||
import { SightData } from "../types";
|
import { SightData } from "../types";
|
||||||
|
import { isMediaIdEmpty } from "../../../../shared/lib/index";
|
||||||
|
|
||||||
const SIGHT_ICON_URL = "/sight_icon.svg";
|
const SIGHT_ICON_URL = "/sight_icon.svg";
|
||||||
|
|
||||||
@@ -1960,9 +1961,13 @@ export const WebGLRouteMapPrototype = observer(() => {
|
|||||||
? { right: 0, transform: "none" }
|
? { right: 0, transform: "none" }
|
||||||
: { left: "50%", transform: "translateX(-50%)" };
|
: { left: "50%", transform: "translateX(-50%)" };
|
||||||
|
|
||||||
const iconUrl = station.icon
|
let isMediaIdEmptyResult = isMediaIdEmpty(station.icon);
|
||||||
? `${import.meta.env.VITE_KRBL_MEDIA}${station.icon}/download?token=${localStorage.getItem("token") ?? ""}`
|
const iconUrl = isMediaIdEmptyResult
|
||||||
: null;
|
? null
|
||||||
|
: `${import.meta.env.VITE_KRBL_MEDIA}${
|
||||||
|
station.icon
|
||||||
|
}/download?token=${localStorage.getItem("token") ?? ""}`;
|
||||||
|
|
||||||
const iconSizePx = Math.round(primaryFontSize * 1.2);
|
const iconSizePx = Math.round(primaryFontSize * 1.2);
|
||||||
|
|
||||||
const secondaryLineHeight = 1.2;
|
const secondaryLineHeight = 1.2;
|
||||||
|
|||||||
Reference in New Issue
Block a user