diff --git a/src/panels/Fahrplan/FahrplanPanel.tsx b/src/panels/Fahrplan/FahrplanPanel.tsx index fff371529b13b0a377e99cac0f00614f4cdc64ed..1b57af804135627396a20c4c2d95d4f60a493e29 100644 --- a/src/panels/Fahrplan/FahrplanPanel.tsx +++ b/src/panels/Fahrplan/FahrplanPanel.tsx @@ -88,7 +88,18 @@ const FahrplanPanel = (props: {definition: FahrplanPanelDefinition}) => { } // Sort the output - newRoutes = newRoutes.sort((a, b) => a.countdown - b.countdown) + newRoutes = newRoutes.sort((a, b) => { + const diff = a.stops[0].arrival.getTime() - b.stops[0].arrival.getTime(); + + if(diff !== 0) { + return diff; + } + + const latestA = Math.max(...a.stops.map(s => s.arrival.getTime())); + const latestB = Math.max(...b.stops.map(s => s.arrival.getTime())); + + return latestA - latestB; + }) // Write to the display setRoutes(newRoutes);