It seems fractional spacing results in different behavior across browsers,
including unbalanced spacing, making the avatar appear uncentered.
Here we avoid this by using integers that seem to closely match the comps.
Fixes https://github.com/vector-im/riot-web/issues/8134.
This returns to the previous behavior of avatar only without a button when the
custom status feature is disabled so that you don't get pointer cursor for
something that does nothing when clicked.
The avatar ring spacing is kept consistent with and without the feature enabled
by using a different class in CSS.
Similar to changes in `StatusMessageContextMenu`, this changes to using the new
status message event emitted in js-sdk to simplify state handling for the avatar
ring when a status is present.
This updates the custom status context menu to match the latest comps. A single
button is used for setting / clearing, depending on what is appropriate.
The state logic is also changed to depend on events and storage from js-sdk for
the committed status message. This makes it easy to distinguish the value being
edited from what's currently committed.
Adjusts the appearance of the avatar ring to match the latest comps.
In addition, we now always render the surrounding button element, which
simplifies styling since the same size is now occupied both with and without the
feature.
This improves alignment between text in the composer and text in the message
history (https://github.com/vector-im/riot-web/issues/8111).
before, we'd only normalize the sublists that had already been
sized manually. As non-sized items still have flex-basis: auto,
they would claim all the space, and mixing sized and unsized items
would be badly broken.
Now, on the first click, all items are sized to their rendered size
which means they won't flex anymore, but at least the resizing works
this way
Another downside is that when resizing while a sublist is
collapsed, it's reverted to 100px and if a size had been set before,
it's forgotten. No way around this with this approach I'm afraid.
- move some methods to ResizeItem subclass
- allow distributor to instanciate sizer and resizeitem it needs
through static factory methods, instead of passing in another ctor
a distributor can only function with the right item and sizer anyways.
- use consistent import/export style
- remove obsolete code
Split the 'new recovery method' into two cases: one where the new
recovery method isn't trusted and you need to verify the device, and
another where it is and the client is using it (where it's more of
an FYI).
https://github.com/vector-im/riot-web/issues/8069