fix: let installed PWA rotate with the device#238
Merged
Conversation
The manifest was pinning orientation to portrait, so installed PWAs ignored device rotation. Switch to "any" so phones in a car mount, tablets, and accessibility setups can follow the OS rotation.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… costs to overflow The mobile trip-detail header was rendering the trip title twice — once in the sticky `MobileHeader` strip and again as the carousel/timeline's own larger title block immediately below. Drop the title from the sticky header so only the prominent block remains. While reshuffling header chrome: - Surface "Scan emails" as a visible Mail-icon button (owner + edit-contributor only), instead of hiding it three taps deep in the overflow menu. It's the primary inbound flow for new trip data. - Move the costs pill into the overflow menu as a "Costs · $X" item. The header was crowded once Scan moved up, and costs are a reference surface rather than a frequent action.
4 tasks
justmarks
added a commit
that referenced
this pull request
May 9, 2026
…ties (#239) * fix(mobile): unstick PWA orientation, add date range + slash-split cities The PWA orientation fix in #238 only updated the manifest source. The service worker was caching `/manifest.webmanifest` cache-first, so Chrome's update probe kept seeing the old `orientation: portrait` value and installed PWAs stayed locked to portrait. Bump SW_VERSION to v7 to evict the stale runtime cache, and switch the manifest to network-first so future manifest changes propagate without another SW bump. While in the mobile trip header: - Surface the trip's date range next to the title (right-aligned, small + muted) so users can confirm they're looking at the right trip without scrolling into the day strip. - Use the slash separator and exclude the home bookend from the cities row — a SEA → Tokyo → Kyoto → SEA itinerary now reads as "Tokyo / Kyoto" rather than "Seattle · Tokyo · Kyoto". The bookend logic is shared with `primaryLocationFor` via a new `tripDestinationCities` helper in `@travel-app/shared`. https://claude.ai/code/session_01H5kv9m5n8eYqwnyGZzvgTW * fix(mobile): use middle-dot separator on the cities row Slash reads as a transfer-day notation ("Paris / Rome" = travel from one to the other on the same day) elsewhere in the app, so reusing it for the trip-level cities row at the top of the mobile carousel muddied the meaning. Middle-dot is the same separator the row used before slash-split and matches the rest of the app's chip / pill separators. https://claude.ai/code/session_01H5kv9m5n8eYqwnyGZzvgTW --------- Co-authored-by: Claude <noreply@anthropic.com>
justmarks
added a commit
that referenced
this pull request
May 9, 2026
…ll CTA (#240) * fix(mobile): unstick PWA orientation, add date range + slash-split cities The PWA orientation fix in #238 only updated the manifest source. The service worker was caching `/manifest.webmanifest` cache-first, so Chrome's update probe kept seeing the old `orientation: portrait` value and installed PWAs stayed locked to portrait. Bump SW_VERSION to v7 to evict the stale runtime cache, and switch the manifest to network-first so future manifest changes propagate without another SW bump. While in the mobile trip header: - Surface the trip's date range next to the title (right-aligned, small + muted) so users can confirm they're looking at the right trip without scrolling into the day strip. - Use the slash separator and exclude the home bookend from the cities row — a SEA → Tokyo → Kyoto → SEA itinerary now reads as "Tokyo / Kyoto" rather than "Seattle · Tokyo · Kyoto". The bookend logic is shared with `primaryLocationFor` via a new `tripDestinationCities` helper in `@travel-app/shared`. https://claude.ai/code/session_01H5kv9m5n8eYqwnyGZzvgTW * fix(mobile): use middle-dot separator on the cities row Slash reads as a transfer-day notation ("Paris / Rome" = travel from one to the other on the same day) elsewhere in the app, so reusing it for the trip-level cities row at the top of the mobile carousel muddied the meaning. Middle-dot is the same separator the row used before slash-split and matches the rest of the app's chip / pill separators. https://claude.ai/code/session_01H5kv9m5n8eYqwnyGZzvgTW * feat(mobile): expand timeline edge-to-edge in landscape, rename install CTA Two small mobile polish items: - Mobile timeline view: in landscape, override the day-column track variable to `minmax(7rem, 1fr)` so few-day trips fill the rotated viewport instead of leaving the right half of the screen empty. Portrait keeps the fixed 7rem track so pills `truncate` cleanly at narrow widths, and the wrapper still scrolls horizontally when `7rem × N` is wider than the viewport. - Rename the user-menu "Add to Home Screen" item to "Install App" on both the Android (`beforeinstallprompt`) and iOS (Safari Share-sheet hint) branches — matches the conventional Chrome PWA install language. The iOS instruction text that quotes the literal Safari menu label ("Tap the Share button → Add to Home Screen") is left intact so users can still find the system control by name. https://claude.ai/code/session_01H5kv9m5n8eYqwnyGZzvgTW --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
orientation: "portrait", which (on Android Chrome at least) prevented the installed PWA from rotating with the device.orientation: "any"so installed PWAs follow the OS orientation — useful for phones in a car mount, tablets, and accessibility setups.Test plan
/manifest.webmanifestandorientationfield reads"any"Generated by Claude Code