feat: udpate route widget

This commit is contained in:
2026-04-28 11:04:09 +03:00
parent 94f512e0e4
commit 53b8ce7095
4 changed files with 41 additions and 2 deletions

View File

@@ -64,6 +64,13 @@ const RouteWidget = observer(() => {
}, [context?.endStopId, isLoading, selectedLanguage]);
const shouldAnimate = (text, maxLength) => text?.length > maxLength;
const getNumberSizeClass = (text) => {
const length = text?.length || 0;
if (length <= 2) return "";
if (length === 3) return "route-widget-number--3";
if (length === 4) return "route-widget-number--4";
return "route-widget-number--5";
};
const getLabelSizeClass = (text) => {
const length = text?.length || 0;
@@ -77,7 +84,7 @@ const RouteWidget = observer(() => {
const routeZhSubtitle = `${startStationZh?.name} - ${endStationZh?.name}`;
return (
<div className="route-widget">
<div className="route-widget-number">
<div className={`route-widget-number ${getNumberSizeClass(route?.route_sys_number || context?.routeNumber)}`}>
{route?.route_sys_number || context?.routeNumber || ""}
</div>
<div className="route-widget-content">

View File

@@ -59,6 +59,18 @@
font-weight: 900;
}
.route-widget-number--3 {
font-size: 50px;
}
.route-widget-number--4 {
font-size: 38px;
}
.route-widget-number--5 {
font-size: 30px;
}
.route-widget-content {
overflow: hidden;
width: 257px;

View File

@@ -59,6 +59,18 @@
font-weight: 900;
}
.route-widget-number--3 {
font-size: 50px;
}
.route-widget-number--4 {
font-size: 38px;
}
.route-widget-number--5 {
font-size: 30px;
}
.route-widget-content {
overflow: hidden;
width: 257px;

View File

@@ -6,6 +6,14 @@ import { observer } from "mobx-react-lite";
const shouldAnimate = (text: string | undefined, maxLength: number) =>
(text?.length ?? 0) > maxLength;
const getNumberSizeClass = (text: string | undefined) => {
const length = text?.length ?? 0;
if (length <= 2) return "";
if (length === 3) return styles["route-widget-number--3"];
if (length === 4) return styles["route-widget-number--4"];
return styles["route-widget-number--5"];
};
const getLabelSizeClass = (text: string | undefined) => {
const length = text?.length ?? 0;
if (length <= 40) return "";
@@ -33,7 +41,7 @@ export const RouteWidget = observer(() => {
return (
<div className={styles["route-widget"]} style={{ position: "relative" }}>
<div className={styles["route-widget-number"]}>
<div className={[styles["route-widget-number"], getNumberSizeClass(routeData?.route_sys_number)].join(" ")}>
{routeData?.route_sys_number || ""}
</div>
<div className={styles["route-widget-content"]}>