Swap the mobile-web back arrow for an inline clear (X) button that sits
on the right side of the search input and shows whenever the search has
text. Clicking it clears the input and resets the active category to
trending, returning the user to the default view. Also drops the
viewKey-driven FlatList remount, which was the source of the
"dialog-reopening" animation when crossing the recents/network boundary
— React reconciliation handles the items swap cleanly on its own.
Verified in browser:
- Typing is responsive on every keystroke; no character-eating
- Clearing via the new X returns to pills + trending
- Switching recents <-> trending no longer animates
- Search-then-clear-then-recents shows only recents (no leftovers)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Follow-up to the pills-background fix: the GifPickerHeader used a
bottom margin, leaving a transparent strip between the search input and
the pills row where scrolling GIFs still bled through. Switch to bottom
padding so the gap sits inside the View's background.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
On mobile web the header's arrow button called control.close(),
collapsing the dialog entirely and giving users no way to exit search
results back to the categories view. Wire it to onGoBack instead, which
already clears the search, resets to trending, and only closes the
dialog when the user is already at that default state.
Addresses PR #10261 feedback from surfdude29: no way back from the
search results screen to the default view.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The pills row lives inside the sticky header but had a transparent
background, so scrolling GIFs showed through the pills. Add a bg and
replace the trailing margin with padding so the background extends
across the gap before the grid content.
Addresses PR #10261 feedback from surfdude29: category icons appear
to float over the GIFs on scroll.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The viewKey added to prevent stale search cells in the recents view was
keyed on `network:${effectiveSearch}`, so it changed on every throttled
search update and category switch. Remounting the FlatList remounts its
ListHeaderComponent too, which blurred the sticky-header search input
(eating the first typed character) and caused a visible reload when
switching categories.
Drop the search term from the key — the recents bug was about crossing
the recents/network boundary, and React reconciliation handles item
changes within the network view on its own.
Addresses PR #10261 feedback from surfdude29: keyboard dismissing on
search and category-switch reload glitch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>