Skip to content

fix: mobile market filters not applying on Android Chrome (#412)#413

Merged
temptemp3 merged 1 commit into
nextfrom
fix/mobile-market-filter-android-chrome
Jun 3, 2026
Merged

fix: mobile market filters not applying on Android Chrome (#412)#413
temptemp3 merged 1 commit into
nextfrom
fix/mobile-market-filter-android-chrome

Conversation

@mikepappalardo
Copy link
Copy Markdown
Collaborator

Problem

Closes #412

On Android Chrome, tapping the A/B/D market filter buttons visually highlights the selected filter but does not update the displayed market list.

Root Cause

Two bugs found:

1. Touch event conflict with overflow-x-auto (primary)

In MarketsTierFilter.tsx, filter buttons on mobile are wrapped in an overflow-x-auto container. On Android Chrome, this causes the browser's touch handler to be ambiguous — it can't immediately tell if the gesture is a horizontal scroll or a tap. Without explicit touch-action CSS, Chrome can delay or suppress the onClick event entirely.

The visual state (button highlight) can still update, giving the false impression that the filter registered, while the onChange callback never fires reliably.

Fix: Added style={{ touchAction: 'manipulation' }} to each filter button. This tells Chrome the element is a tap target, not a scroll handle — onClick fires immediately without delay or cancellation.

2. marketFilter prop not passed to MarketsTableContent (secondary)

MarketsTable renders MarketsTableContent without the marketFilter prop, so MarketCardView (the mobile card layout) always receives key="all" and never force-remounts when the filter changes. The data IS correctly filtered via the hook's paginatedData, but the intended remount-on-filter behavior is broken.

Fix: Pass marketFilter={marketFilter} from MarketsTable to MarketsTableContent.

Changes

  • MarketsTierFilter.tsx: Add touch-action: manipulation to filter buttons
  • MarketsTable.tsx: Pass marketFilter prop to MarketsTableContent

Testing

  • Android Chrome: tap A/B/D filters — market list updates correctly
  • iOS Safari: tap A/B/D filters — market list updates correctly
  • Desktop: filter behavior unchanged
  • All filter combinations work (A→B, B→D, D→all, etc.)

- Add touch-action: manipulation to MarketsTierFilter buttons to prevent
  Android Chrome from intercepting tap events as horizontal scroll gestures
  inside the overflow-x-auto container. Without this, onClick can be delayed
  or suppressed on Android touch devices.

- Pass marketFilter prop from MarketsTable to MarketsTableContent so that
  MarketCardView (mobile) gets the correct key and force-remounts on filter
  change, matching the intended behavior.

Fixes #412
@mikepappalardo mikepappalardo requested a review from temptemp3 June 2, 2026 19:53
@temptemp3 temptemp3 merged commit 4b2d890 into next Jun 3, 2026
2 checks passed
@temptemp3 temptemp3 deleted the fix/mobile-market-filter-android-chrome branch June 4, 2026 00:34
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.

Mobile Market Filters (A/B/D) Not Applying on Android Chrome

2 participants