From dd018244188690a22f53d3b99644a472e9aeefb6 Mon Sep 17 00:00:00 2001 From: Dean Shi Date: Tue, 12 May 2026 15:25:02 -0400 Subject: [PATCH] fix: subway status pills overlapping with status text - seems like having min-width was causing it so that the divs weren't respecting the full size of the pills - alongside that, we needed to add Shuttle as a specific alert type to show the alert link - removes min-width from the container for the RoutePill and adjusted logic so that if it's a Delay, we only change the status whereas the other statuses change the location --- assets/css/lcd/subway_status.scss | 4 -- .../subway_status/subway_status_common.tsx | 41 ++++++++++--------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/assets/css/lcd/subway_status.scss b/assets/css/lcd/subway_status.scss index 9d408c6cc..4922b0516 100644 --- a/assets/css/lcd/subway_status.scss +++ b/assets/css/lcd/subway_status.scss @@ -61,10 +61,6 @@ white-space: nowrap; } -.subway-status__pill-container { - min-width: 136px; -} - .subway-status__text-container { display: flex; gap: 16px; diff --git a/assets/src/components/subway_status/subway_status_common.tsx b/assets/src/components/subway_status/subway_status_common.tsx index 4b986554d..4f2a34c30 100644 --- a/assets/src/components/subway_status/subway_status_common.tsx +++ b/assets/src/components/subway_status/subway_status_common.tsx @@ -163,30 +163,18 @@ export const useSubwayStatusTextResizer = (alert: Alert, type: SectionType) => { : [FittingStep.FullSize, FittingStep.Abbrev]; const { ref, step: fittingStep } = useAutoSize(steps, id); - const isStopsSkipped = /Stops? Skipped/.test(alert.status); - const isSuspension = firstWord(alert.status) === "Suspension"; const isDelays = firstWord(alert.status) === "Delays"; - const location = (() => { - if ( - fittingStep === FittingStep.PerAlertEffect && - (isStopsSkipped || isSuspension) - ) { - return "mbta.com/alerts"; - } else if (isAlertLocationMap(alert.location)) { - return fittingStep === FittingStep.Abbrev || - fittingStep === FittingStep.PerAlertEffect - ? alert.location.abbrev - : alert.location.full; + let location = getAlertLocationString(alert.location, fittingStep); + let status = alert.status; + + if (fittingStep === FittingStep.PerAlertEffect) { + if (isDelays) { + status = "Delays"; } else { - return alert.location; + location = "mbta.com/alerts"; } - })(); - - const status = - fittingStep === FittingStep.PerAlertEffect && isDelays - ? "Delays" - : alert.status; + } return { ref, location, status }; }; @@ -201,3 +189,16 @@ export const isAllNormalService = (data: SubwayStatusData): boolean => { route_section.alerts.every((alert) => alert.status === NORMAL_STATUS), ); }; + +const getAlertLocationString = ( + location: AlertLocation, + fittingStep: FittingStep, +) => { + if (isAlertLocationMap(location)) { + return fittingStep === FittingStep.FullSize + ? location.full + : location.abbrev; + } else { + return location; + } +};