block / block/buzz

iOS: the emoji / reaction panel renders with no background and does not scroll

Open
#5,207 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## Summary

On the App Store Buzz iOS app, opening the emoji picker — both from the composer and from the reaction affordance on a message — shows the emoji grid with **no panel background** (the timeline reads through it) and the grid **does not scroll**, so only the first rows are reachable.

Filing rather than fixing because we run our own relay but not our own client: `mobile/` is not what is installed on these phones, so this is a defect in a binary we do not build.

## What I can and cannot tell you

**Can:** reported by multiple users on the public App Store build against our self-hosted relay (`wss://buzz.scalarly.org`), reproducible for them on both entry points to the picker. The relevant area is presumably `mobile/lib/features/channels/emoji_picker.dart` and `mobile/lib/features/channels/emoji_picker/emoji_grid.dart`, though I have not been able to attach that to the symptom.

**Cannot:** I do not have the exact app build number, the iOS version, or a screenshot in hand yet, and I cannot instrument the installed binary. I would rather file it thin than sit on it — tell me what you need and I will collect it: device model, iOS version, app version, screen recording, whether it reproduces against `wss://relay.buzz.xyz` as well as ours.

## One thing worth ruling out

We hit a symptom that reads identically on **desktop**, and it turned out to be entirely our own: `EmojiPicker.tsx` rendered emoji-mart inside an unclassed `div`, so the `.buzz-emoji-mart` rules that supply both the background variables and the bounded height never matched — no background, and with no height constraint the internal scroller had nothing to scroll against. Two call sites worked only because they hardcoded their own height and background.

I mention it only because "no background **and** doesn't scroll" arriving together is a strong signature of *one* missing height/skin constraint on the picker host rather than two defects — and if the Flutter picker also depends on an ancestor to bound it, the same shape could apply. The codebases share nothing else, so treat this as a hypothesis, not a diagnosis.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.