Skip to content

Replace the Home header with a floating search toolbar - #121

Open
AndrewG828 wants to merge 1 commit into
user/andrewgao/feature/UI-UX-Lucid-Refactor-10-tab-navigationfrom
user/andrewgao/feature/UI-UX-Lucid-Refactor-11-home-search
Open

Replace the Home header with a floating search toolbar#121
AndrewG828 wants to merge 1 commit into
user/andrewgao/feature/UI-UX-Lucid-Refactor-10-tab-navigationfrom
user/andrewgao/feature/UI-UX-Lucid-Refactor-11-home-search

Conversation

@AndrewG828

@AndrewG828 AndrewG828 commented Sep 3, 2026

Copy link
Copy Markdown
Member

Stacked PR 11 of 15. Based on #120 — merge in order.
#111#112#113#114#115#116#117#118#119#120#121#122#123#124#125

Home's static header (wordmark, search icon, bell) becomes a glass toolbar that
floats over the feed: a search pill that expands into the full search card, a
notification button, and the section's filter button once that scrolls out of
view.

Search now happens in place instead of pushing SearchView. Results render into
the same scroll view as the feed, so there is no navigation transition between
typing and reading results.

The Shop By Category row moves to Explore, which is where browsing by category
now lives, and the expandable add button goes with the Sell tab. What is left
on Home is the recent-listings feed and its filter.

Two things to look at:

  • Scrolling is disabled only while the search card covers the feed with no
    results yet. Tying it to "is the card open" — the obvious version — also
    freezes the results the card produces, so you can't scroll past the first row.
  • Toolbar filter visibility is driven by KVO on the enclosing UIScrollView's
    content offset. SwiftUI's PreferenceKey and GeometryReader paths stall
    mid-scroll and leave the button stuck in whichever state it was in.
    onScrollGeometryChange would do the same job natively, but only from iOS 18
    and the deployment target is 17.5, so this is one mechanism instead of two.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_017R8mua9xepzF3mnRETtd6W

Home's static header (wordmark, search icon, bell) becomes a glass toolbar that
floats over the feed: a search pill that expands into the full search card, a
notification button, and the section's filter button once that scrolls out of
view.

Search now happens in place instead of pushing `SearchView`. Results render into
the same scroll view as the feed, so there is no navigation transition between
typing and reading results.

The Shop By Category row moves to Explore, which is where browsing by category
now lives, and the expandable add button goes with the Sell tab. What is left
on Home is the recent-listings feed and its filter.

Two things to look at:

- Scrolling is disabled only while the search card covers the feed with no
  results yet. Tying it to "is the card open" — the obvious version — also
  freezes the results the card produces, so you can't scroll past the first row.
- Toolbar filter visibility is driven by KVO on the enclosing `UIScrollView`'s
  content offset. SwiftUI's PreferenceKey and GeometryReader paths stall
  mid-scroll and leave the button stuck in whichever state it was in.
  `onScrollGeometryChange` would do the same job natively, but only from iOS 18
  and the deployment target is 17.5, so this is one mechanism instead of two.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017R8mua9xepzF3mnRETtd6W
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant