multiverse: expand user names when inviting (#5146)

When the user does an `/invite`, if the target user doesn't start with
an `@`, try expanding it as a user on the local server.

This makes it much easier when repeatedly testing inviting!
This commit is contained in:
Richard van der Hoff
2025-06-02 14:41:20 +01:00
committed by GitHub
parent 2fa6a98052
commit 56be9dec59
2 changed files with 17 additions and 5 deletions
@@ -1,6 +1,6 @@
use clap::{Parser, Subcommand};
use crossterm::event::KeyEvent;
use matrix_sdk::{ruma::OwnedUserId, Room};
use matrix_sdk::Room;
use ratatui::{prelude::*, widgets::*};
use style::palette::tailwind;
use tui_textarea::TextArea;
@@ -14,7 +14,7 @@ struct Cli {
#[derive(Debug, Subcommand)]
pub enum Command {
Invite { user_id: OwnedUserId },
Invite { user_id: String },
}
pub enum MessageOrCommand {
+15 -3
View File
@@ -8,7 +8,7 @@ use matrix_sdk::{
locks::Mutex,
ruma::{
api::client::receipt::create_receipt::v3::ReceiptType,
events::room::message::RoomMessageEventContent, OwnedRoomId, OwnedUserId,
events::room::message::RoomMessageEventContent, OwnedRoomId, UserId,
},
RoomState,
};
@@ -264,7 +264,7 @@ impl RoomView {
};
}
async fn invite_member(&mut self, user_id: OwnedUserId) {
async fn invite_member(&mut self, user_id: &str) {
let Some(room) = self
.selected_room
.as_deref()
@@ -275,6 +275,18 @@ impl RoomView {
return;
};
let user_id = match UserId::parse_with_server_name(
user_id,
room.client().user_id().unwrap().server_name(),
) {
Ok(user_id) => user_id,
Err(e) => {
self.status_handle
.set_message(format!("Failed to parse {user_id} as a user ID: {e:?}"));
return;
}
};
match room.invite_user_by_id(&user_id).await {
Ok(_) => {
self.status_handle
@@ -290,7 +302,7 @@ impl RoomView {
async fn handle_command(&mut self, command: input::Command) {
match command {
input::Command::Invite { user_id } => self.invite_member(user_id).await,
input::Command::Invite { user_id } => self.invite_member(&user_id).await,
}
}