Admittedly, I don't know. Haven't checked how low Swift can go in a hot minute.
Just gonna assume Swift targets the latest and greatest version of Windows because Microsoft says so.
Green status rows used white text, which was difficult to read against the green background. This change selects a contrasting text color based on the status color so green rows use black text and other statuses keep white text for better legibility in the status table.
- Introduced TrainLateness enum to represent on-time, early, late (with minutes), and unknown states, including description text, color, and formatting logic.
- Replaced TrainStatusRow.status String with TrainLateness and update ContentView to render a colored status pill and to return TrainLateness from isOnTime.
- Convert AmtrakDateFormatting API from static to instance properties/methods and added parsedDate(from:) to return Date.
- Update time(from:) and date(from:) to instance methods. Improve isOnTime logic to compute actual vs scheduled differences (minutes/hours) and report early/late/on-time.
- Updated ContentView to create an AmtrakDateFormatting instance and use the new API. Remove the Train.serviceDate extension.
- This update adds ISO date/time helpers for Amtrak timestamps, refactors the train table to show arrival time, status, and track details, and tracks the current station context in the UI.
- It also hardens station status decoding with a safe fallback to Unknown and simplifies the row model to match the new display.
Added richer station metadata and status handling to match the Amtrak API payload. This commit introduces new station fields for name, timezone, schedule/actual timings, platform, and status, along with extra train row properties for origin and arrival/departure details used by the UI.
- Went with the popular Virtual Railfan ones first.
- Moved the error message to its own dedicated space so it doesn't pop up out of nowhere
- Fixed a few typos
- Replace the placeholder window content with ContentView and implement a basic station lookup UI.
- Added a station code TextField, Refresh button that triggers an async load, loading indicator, and error message display. Introduces a Table for TrainStatusRow with columns for number, route, on-time and platform.
- Started plumbing for row population (work in progress).
- Also tweaked window title and fixes station comment (Ashland).
- Updated package.json with project metadata and moves dependencies to devDependencies.
- Adds .editorconfig for consistent code style
- Updated VSCode and .NET project settings for improved development workflow.
- Now possible to click links that launch the browser from the backend
- Version scheme change to account for different methods with desktop applications
- All functionality has been modularized to their new respective components (I love Blazor)
- Minor versions are now in the triple digits, patches are in the double digits
Now that each button is based on one component that contains the necessary functionality, instead of the previous mess, there is a slight performance increase
- Version printed on the front-end using Gitinfo. It is possible to get the native one from Tauri itself, but I haven't got that working yet.
- Added macOS and Android-style icons.