mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-06-12 17:00:23 +01:00
Typing in the filter-sheet search re-filtered and re-rendered up to 100 option rows per keystroke. On large lists (2000+ tags) that blocked the JS thread long enough for the controlled TextInput to snap back to a stale value - letters were dropped and deleted text reappeared. Defer the search value (useDeferredValue) so the keystroke render stays cheap and the filtering/list update runs after, and memoize the row elements so urgent renders don't rebuild them.