Repository navigation
Workouts: float the manual sport picker's suggestion list so it isn't squeezed on iOS (#297) - #315
Merged
Conversation
… squeezed on iOS (ryanbr#297) The manual Add/Edit sheet rendered the sport suggestions inline in the form, where the list was the only height-flexible element. On iPhone with the keyboard up, the fixed-height fields below won the vertical space and collapsed the list to nothing — the ryanbr#297 Recent block (and even catalogue matches) never showed. It now floats as an overlay below the field: it no longer competes for the form's layout, self-sizes to its content capped at 168pt (measured via a PreferenceKey, since an overlay proposes the field's small height), and the field's raised zIndex draws it over the rows below. SwiftUI-specific layout fix; behaviour/data unchanged, so no Android twin (its AlertDialog scrolls rather than squeezing). Verified in the iOS Simulator: with the keyboard up the Recent block renders Yoga over Running above the full catalogue; the live-start sheet was already unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 tasks done
DX23876
pushed a commit
to DX23876/noop
that referenced
this pull request
Jul 22, 2026
… squeezed on iOS (ryanbr#297) (ryanbr#315) The manual Add/Edit sheet rendered the sport suggestions inline in the form, where the list was the only height-flexible element. On iPhone with the keyboard up, the fixed-height fields below won the vertical space and collapsed the list to nothing — the ryanbr#297 Recent block (and even catalogue matches) never showed. It now floats as an overlay below the field: it no longer competes for the form's layout, self-sizes to its content capped at 168pt (measured via a PreferenceKey, since an overlay proposes the field's small height), and the field's raised zIndex draws it over the rows below. SwiftUI-specific layout fix; behaviour/data unchanged, so no Android twin (its AlertDialog scrolls rather than squeezing). Verified in the iOS Simulator: with the keyboard up the Recent block renders Yoga over Running above the full catalogue; the live-start sheet was already unaffected. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
simoncad7
pushed a commit
to simoncad7/noop
that referenced
this pull request
Aug 17, 2026
… squeezed on iOS (ryanbr#297) (ryanbr#315) The manual Add/Edit sheet rendered the sport suggestions inline in the form, where the list was the only height-flexible element. On iPhone with the keyboard up, the fixed-height fields below won the vertical space and collapsed the list to nothing — the ryanbr#297 Recent block (and even catalogue matches) never showed. It now floats as an overlay below the field: it no longer competes for the form's layout, self-sizes to its content capped at 168pt (measured via a PreferenceKey, since an overlay proposes the field's small height), and the field's raised zIndex draws it over the rows below. SwiftUI-specific layout fix; behaviour/data unchanged, so no Android twin (its AlertDialog scrolls rather than squeezing). Verified in the iOS Simulator: with the keyboard up the Recent block renders Yoga over Running above the full catalogue; the live-start sheet was already unaffected. Co-authored-by: Claude Fable 5 <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.
Follow-up to #301 (merged), which added the #297 "Recent activities" section to the sport pickers. That PR's second commit — the iOS layout fix below — didn't make it into the squash-merge, so it's re-submitted here on its own.
The bug
The manual Add/Edit sheet's sport suggestion list (Recent + full catalogue) rendered inline in the form, where it was the only height-flexible element. On iPhone, with the keyboard up, the fixed-height fields below it (Start / Duration / Avg HR / Calories) won the available vertical space and squeezed the list to nothing — the #297 Recent block, and even ordinary catalogue matches, never actually appeared on iOS.
The fix
The suggestion list now floats as an overlay below the Sport field instead of sitting inline:
VStacklayout.PreferenceKeyand sets an explicit frame from that, capped at 168pt (same cap as before) — letting it scroll only past that.zIndexis raised so the floating panel draws over the rows below it instead of behind them.Purely a SwiftUI layout fix — no behavior or data changes, so no Android twin (Android's
AlertDialogscrolls its content rather than squeezing, so it was never affected).Verification
Strand) and iOS (NOOPiOS) builds succeed locally (app-target Swift isn't covered by default CI).