Files
buzz/mobile/lib
Kenny LopezandMongo 500b5e1a2b Harden native emoji picker lifecycle and track category on scroll
Fixes the review findings on the iOS native emoji picker without changing its authored look or interaction flow.

- A custom-emoji palette fetch error no longer strands the composer: the failed await falls back to the Flutter picker while the context is mounted, so onDismiss still runs and isEmojiPickerOpen is cleared.
- A reentrant open is coalesced by a presentation guard so it cannot replace the live sheet's method-call handler and hijack the original owner's select/dismiss callbacks; native present() now returns false when a sheet is already up instead of a misleading true.
- The category rail follows manual scrolling via section-header offsets and exposes the isSelected VoiceOver trait; selection logic is extracted to a pure NativeEmojiCategoryTracker for unit tests.
- Adds Dart regressions for the palette-error fallback and reentrancy, and RunnerTests for the scroll tracker.

Co-authored-by: Mongo <9cfd347903944d5b85aa6c93d2ab67381b978a92a31914bca69998968752a1d7@buzz.block.builderlab.xyz>
Signed-off-by: Kenny Lopez <klopez4212@gmail.com>
2026-08-17 08:21:00 +01:00
..
2026-08-13 17:47:44 +01:00