Skip to content

Conversation

@pettinarip
Copy link
Member

Description

Performance improvements to wallet/product filtering, targeting significant INP reduction on mid/low-tier mobile devices.

  • Filter memoization: Custom comparator for memo() to skip re-renders when filter state hasn't meaningfully changed
  • Concurrent rendering: Wrap filter updates in startTransition and use useDeferredValue for smoother UX
  • Persistent panel: New <PersistentPanel> component that stays mounted after first open (avoids expensive re-renders of filter content)
  • Mobile filters: Replace Drawer with Sheet + PersistentPanel for better mobile performance
  • Filter algorithm: Combine 3 chained .filter() into single pass over wallet data

These changes reduce jank when toggling filters, especially on mobile where the filter panel was previously re-mounting its entire content on each open.

INP improvements in (mid/low tier phones simulations):

  • open drawer: from ~600ms to ~60ms
  • apply filter: from ~400ms to ~40ms

@netlify
Copy link

netlify bot commented Nov 25, 2025

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit 16973e2
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/6925d1b4c8531e0008e52cb8
😎 Deploy Preview https://deploy-preview-16694--ethereumorg.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions bot added the tooling 🔧 Changes related to tooling of the project label Nov 25, 2025
@pettinarip pettinarip force-pushed the find-wallets-optimizations branch from 084248b to 16973e2 Compare November 25, 2025 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tooling 🔧 Changes related to tooling of the project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants