Skip to content

Put Reply just off the bubble you're pulling, centred on it - #171

Open
simonhamp wants to merge 2 commits into
mainfrom
fix/swipe-reply-icon-by-bubble
Open

simonhamp wants to merge 2 commits into
mainfrom
fix/swipe-reply-icon-by-bubble

Conversation

@simonhamp

Copy link
Copy Markdown
Member

When you pull a Remotes message to reply, the Reply icon came in from the far edge of the thread, a long way from the bubble you were looking at. It was also centred on the whole message row, so on a message with a name above it, or a link card or reactions below, it sat level with none of it.

Each bubble and its pin now sit in a row of their own, and Reply is laid over that row's edge, 8 points past the side the pull uncovers. It's centred on the bubble and moves with it. Text, image-only and voice note messages all get it.

Things to look at:

  • Reply is absolutely positioned, not part of the row. My first try put it in the row and shrank the row's padding to match. That was fine on iOS, but Android rows don't shrink a bubble for what's beside it, so long bubbles got wider. Negative margins don't help either, because Android only offsets the drawing. With Reply laid over the row, bubbles wrap exactly where they did before on both platforms.
  • On a pinned message, Reply sits past the pin rather than on top of it.
  • The first commit moves mobile-ui and mobile-air to their latest main. Reply to a Remotes message by pulling it toward its edge #157 depends on the gesture area trigger from mobile-ui#197 and mobile-air#651, but merged with the lock still on mobile-ui 0.9.0. That's why swipe-to-reply didn't work and main has 8 failing tests. Packagist's dev-main for mobile-ui is stuck at 29 Oct, so composer.json reads mobile-ui straight from GitHub for now. That entry can go once Packagist catches up.

At rest nothing looks different, because Reply only shows during a pull. The recordings show the change: each one pulls one of theirs left and one of yours right, stopping just short of replying.

Screenshots

swipe

Recordings: Android dark, after, Android dark, before, Android light, after, Android light, before, iOS dark, after, iOS dark, before, iOS light, after, iOS light, before

thread

iOS light iOS dark Android light Android dark
Before
After
  • No visible change

🤖 Generated with Claude Code

simonhamp and others added 2 commits November 6, 2026 13:46
Swipe-to-reply (#157) relies on the gesture area's trigger from
mobile-ui#197 and mobile-air#651, but merged with the lock still on
mobile-ui 0.9.0, so it didn't work and eight of its tests fail on main.

Packagist's dev-main for mobile-ui is stuck at 29 Oct, so mobile-ui
comes straight from GitHub until that's fixed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reply used to come in from the far edge of the thread, a long way from
the bubble, and was centred on the whole message: name, reply ghost,
link card, reactions and time.

Each bubble and its pin now sit in a row of their own, and Reply lies
over that row's edge, 8 points past the side the pull uncovers. So it's
centred on the bubble and moves with it. It's absolutely positioned
rather than in the row, because Android rows don't shrink a bubble to
make room for what's beside it, and negative margins only offset the
drawing there. Bubbles wrap exactly where they did before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant