Commit Graph

228 Commits

Author SHA1 Message Date
Richard van der Hoff 75cde02283 Merge pull request #4946 from matrix-org/rav/history_sharing/share_on_invite
sdk: share room history when we send an invite, subject to an experimental feature flag.
2025-04-23 11:15:57 +01:00
Damir Jelić 59ecb1edbd fix(multiverse): Add a shortcut to mark rooms as read back 2025-04-23 11:39:59 +02:00
Damir Jelić a848506669 feat(multiverse): Add a /invite command 2025-04-17 12:03:51 +02:00
Damir Jelić f0e49c2adf feat(multiverse): Render membership changes 2025-04-17 12:03:51 +02:00
Richard van der Hoff 96bdd91bad sdk: share room history when we send an invite
... subject to an experimental feature flag.
2025-04-16 16:53:27 +01:00
Damir Jelić bc50cae35f feat(multiverse): Add support to join rooms you've been invited to 2025-04-16 11:35:57 +02:00
Benjamin Bouvier a27d6e2655 multiverse: prefer rendering back-paginated events instead of timeline's tail
This is useful to observe the virtyual start of timeline item in manual
testing.
2025-04-15 16:31:20 +02:00
Richard van der Hoff 1d3107ebcb multiverse: reduce redraw rate
This reduces the framerate from ~62fps to 10fps.

This is a workaround for a problem in my terminal, so apologies for inflicting
it on everyone else, but here we are, and 10fps seems like it should be enough
for anyone.

The problem in question is specifically when I try to select some text by
dragging the mouse (eg, to copy a generated recovery key). If I start a drag,
but a redraw happens before the mouse has moved [a certain distance?], then the
drag doesn't work, and nothing gets selected. By reducing the framerate, I have
a much better chance of successfully starting a drag.
2025-04-09 16:10:31 +02:00
Richard van der Hoff 073b4bae03 multiverse: allow recovery keys with h or l in them
Currently, `h` and `l` are intercepted by the parent view to change tab,
meaning it's impossible to enter a recovery key which contains those
characters.

The fix here is very blunt: it just disables `h` and `l` for tab-changing. I
considered making it dependent on which tab is open, or what's going on in the
'Encryption' tab, but given you need to know about the alternatives (tab/cursor
keys) to switch away from the Encryption tab, I don't think that makes sense.
2025-04-09 14:53:36 +02:00
Damir Jelić f3291d15c5 feat(multiverse): Move the details view to be beside the timeline
This allows us to view the debug screen at the same time as the
timeline. The details view can be to the right of the timeline or bellow
the timeline and we can switch using ALT-t.
2025-04-07 14:17:10 +02:00
Damir Jelić 413070aecb feat(multiverse): Shrink the room list to 25% of the screen 2025-04-07 14:17:10 +02:00
Damir Jelić 288251b1b5 feat(multiverse): Keep the timeline scrolled to the bottom 2025-04-07 14:17:10 +02:00
Damir Jelić 6c3e3bb519 feat(multiverse): Tweak the keybindings for the details view a bit 2025-04-07 14:17:10 +02:00
Damir Jelić 2e8b396c09 feat(multiverse): Add global keybindings to go directly into a details view 2025-04-07 14:17:10 +02:00
Damir Jelić ed048af903 chore(multiverse): Fix some clippy warnings 2025-04-07 14:17:10 +02:00
Damir Jelić 28e475b1fc chore(multiverse): Get rid of an unused dependency 2025-04-07 14:17:10 +02:00
Damir Jelić 5a13bd5e76 feat(multiverse): Allow to backpaginate while looking at the room details 2025-04-07 14:17:10 +02:00
Damir Jelić 6966302467 fix(multiverse): Properly document the shortcuts on the help screen 2025-04-07 14:17:10 +02:00
Damir Jelić fd6ce02d70 feat(multiverse): Select the first item in the developer settings 2025-04-07 14:17:10 +02:00
Damir Jelić 2debfd4c4d fix(multiverse): The encryption settings don't need a separate block anymore 2025-04-07 14:17:10 +02:00
Damir Jelić 19c40fd2da fix(multiverse): Better rendering for the OAuth approval URL when resetting recovery 2025-04-07 14:17:10 +02:00
Damir Jelić d5d0368ba8 feat(multiverse): Add support to reset your identity 2025-04-07 14:17:10 +02:00
Damir Jelić 899eb04f05 feat(multiverse): Use F8 to open the details view instead of CTRL-D
CTRL-D might become important once we add scrolling to the timeline
2025-04-07 14:17:10 +02:00
Damir Jelić 187280d573 feat(multiverse): Show an exit screen instead of printing things to stdout 2025-04-07 14:17:10 +02:00
Damir Jelić 036d14e9e3 feat(multiverse): Settings view 2025-04-07 14:17:10 +02:00
Damir Jelić 226229d63b refactor(multiverse): Move the widgets of the details mode into the details module 2025-04-07 14:17:10 +02:00
Damir Jelić 0cf018cc1b feat(multiverse): Allow the help screen to be closed with ESC as well 2025-04-07 14:17:10 +02:00
Damir Jelić c3d7a760f7 feat(multiverse): Add an input line so we can send messages 2025-04-07 14:17:10 +02:00
Damir Jelić d51cf1e76e refactor(multiverse): Change the keybinding for the reaction sending feature 2025-04-07 14:17:10 +02:00
Damir Jelić 71b6b213c4 refactor(multiverse): Move the details mode into a tab-based popout 2025-04-07 14:17:10 +02:00
Damir Jelić ec23638567 refactor(multiverse): Move some global shortcuts behind modifiers 2025-04-07 14:17:10 +02:00
Damir Jelić 688a56a077 feat(multiverse): Always render the timeline, despite showing some details 2025-04-07 14:17:10 +02:00
Damir Jelić 8413e856fe refactor(multiverse): Move the timeline rendering into a separate widget 2025-04-07 14:17:10 +02:00
Damir Jelić 3f16e77686 refactor(multiverse): Don't unwrap when subscribing to the event cache 2025-04-07 14:17:10 +02:00
Damir Jelić a4779299f6 refactor(multiverse): Move the details views under the room view module 2025-04-07 14:17:10 +02:00
Damir Jelić 50934f5bc9 refactor(multiverse): Move the room view into a separate widget 2025-04-07 14:17:10 +02:00
Damir Jelić fad63b9a64 feat(multiverse): Recovery support 2025-04-07 14:17:10 +02:00
Damir Jelić d999cf9180 refactor(multiverse): Convert the status widget into a stateful widget
The status widget depends on the main app state, instead of cloning the
app state let's just use a StatefulWidget instead.
2025-04-07 14:17:10 +02:00
Damir Jelić 3cd60c5b01 doc(multiverse): Document the status widget a bit better 2025-04-07 14:17:10 +02:00
Damir Jelić 2e4587f824 refactor(multiverse): Move all the widgets into a separate module 2025-04-07 14:17:10 +02:00
Damir Jelić 3996f7c0d6 feat(multiverse): Add a help screen 2025-04-07 14:17:10 +02:00
Damir Jelić 774bff00a0 refactor(multiverse): Events view 2025-04-07 14:17:10 +02:00
Damir Jelić d6196e6c5c refactor(multiverse): Move the linked chunk view into a popout widget 2025-04-07 14:17:10 +02:00
Damir Jelić b49fd2b473 feat(multiverse): Only open the read receipt screen if a room is selected 2025-04-07 14:17:10 +02:00
Damir Jelić f31119a013 refactor(multiverse): Turn the read receipt rendering logic into a widget 2025-04-07 14:17:10 +02:00
Damir Jelić fb4caf40aa refactor(multiverse): Make the Status struct a true widget 2025-04-07 14:17:10 +02:00
Damir Jelić 238fbdbe82 refactor(multiverse): Use the Mutex from the common crate to avoid calling unwrap 2025-04-07 14:17:10 +02:00
Damir Jelić a1d42cdf06 refactor(multiverse): Shorten some overly long lines 2025-04-07 14:17:10 +02:00
Damir Jelić 1c134a78de refactor(multiverse): Use a mpsc channel to propagate status messages to the status widget 2025-04-07 14:17:10 +02:00
Damir Jelić b5d1c14e29 refactor(multiverse): Rename set_status_message to set_message 2025-04-07 14:17:10 +02:00