ddfcf3e0e4006c5ec2c7ebe63dfc6b11e6190901
Three fixes from the latest round of testing: 1) Tapping the airline filter froze the app for several seconds. Cause: `visibleAirlines` / `visibleCategories` were computed properties evaluated on every body re-render, each iterating the aircraft array and hitting the 2,695-entry registry. Caching them in @State and refreshing only via .onChange(of: aircraft) takes the menu-open cost to near-zero. 2) Picking "Southwest" in the airline filter still left other carriers on screen. Cause: when no callsign-derivable airline ICAO was present (N-number GA traffic, ad-hoc callsigns), the filter `guard let` silently let the aircraft through. Tightened to require an ICAO match when any airline filter is active. 3) The detail sheet showed no departure / arrival airport on most selections. Cause: OpenSky's /flights/aircraft endpoint only returns flights *after they've landed*, so an in-progress flight has no entry. We were waiting for one to appear forever. Rewrote the route section: now always shows whatever's most recent, labeled "IN FLIGHT" when the snapshot is < 6h old (with a green live-dot), "LAST FLIGHT · 3h AGO" otherwise, and an explicit "Route not available from OpenSky for this aircraft" card when the endpoint returned nothing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Swift
57.9%
HTML
33.9%
JavaScript
4.5%
Python
3.5%
Shell
0.2%