element-hq / element-hq/element-x-android

Consistent reaction button ordering

Open
#4,002 0 comments 0 reactions 0 assignees View on GitHub
T-Enhancement
Dominant language
Kotlin
Stars
2.4k
Forks
624
Avg merge
1d 14h
Merged PRs (30d)
149

Description

### Your use case

#### What would you like to do?

To make the ordering of (emoji) reactions consistent under incoming and outgoing messages.

#### Why would you like to do it?

It's not uncommon for people to encode meaning in the order of (emoji) reactions. This is already somewhat highly requested for Element Web / Android, albeit to prefer reaction order over count: https://github.com/element-hq/element-meta/issues/772

Currently the aforementioned Element Clients order reactions first by count and then by order. Element X however flips that established order for reactions that appear under outgoing messages (from the perspective of the sender of the message). This makes the order unpredictably inconsistent for participants.

The order on an outgoing message is in it self also inconsistent with the screen showing the same reaction in detail.

#### How would you like to achieve it?

By removing the dependence on if a message is outgoing or incoming for the layout direction of reaction buttons under a message. This would also make the "add reaction" and "Show More" buttons always be at the end of the last reaction button row (in the global layout direction).

Alternatively the buttons could still be dependent on outgoing messages, then the "add reaction" button wouldn't be the "exact" placeholder of the new emoji appearing however.

### Have you considered any alternatives?

_No response_

### Additional context

I assume this was a design choice to have the "add reaction" and "Show More" buttons always align to the middle (horizontally). I don't believe this justifies the inconsistent ordering however.

I'll happily send a patch if there's a commitment to change this.

### Are you willing to provide a PR?

Yes

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.