Flutter pushes the picker's whole state on every rebuild, and each push
reloaded every visible row with fresh, unreused cells. Drop identical
states, apply the rest as a diffable snapshot that redraws only changed
rows in reused cells, and animate a member's row moving between the
chosen and result sections when it is picked or removed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz>
Signed-off-by: Tom Brow <tomb@squareup.com>
Every state update from Dart reloads the native member picker, which built
fresh cells showing the initials fallback and fetched each avatar again over
the platform channel, so avatars blinked whenever results refreshed, most
visibly right after foregrounding. Keep loaded avatars by key and draw them
at once when a cell is rebuilt.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz>
Signed-off-by: Tom Brow <tomb@squareup.com>
## Summary
Use native iOS sheets for channel editing and Add Members, with profile
avatars, matching search, and destructive removal dialogs. Canvas
content becomes a tappable preview with Add/Remove actions.
Fix the Settings availability menu and clipped copy confirmation. Align
channel action messages with chat styling and keep agent identities
distinguishable across selection, attribution, and profile surfaces.
### Related issue
No duplicate found in the existing mobile Settings/channel issues and
PRs.
### Testing
- Flutter analysis, formatting, file-size checks, focused collision
regressions, and the full mobile test suite passed.
- Production UIKit picker simulator check passed: distinct
visible/accessibility labels, avatar updates, selected rows, and pubkey
callbacks. Wired into Mobile Swift CI.
- Original UI was built and tested on the physical iPhone with author
confirmation; profile/community data preserved.
- Review fixes await renewed author device confirmation before restoring
`buzz-review-completed` and ready-for-review status.
---------
Signed-off-by: kenny lopez <klopez4212@gmail.com>