Add slash command to switch to a room's virtual room (#7839)
* Add slash command to switch to a room's virtual room * Update to new interface * Return null if no virtual user * Throw newTranslateableError * Types * Disable tovirtual if virtual rooms not supported
This commit is contained in:
parent
76ca0362e1
commit
3e4e7efd89
3 changed files with 42 additions and 1 deletions
|
@ -65,6 +65,7 @@ import RoomViewStore from "./stores/RoomViewStore";
|
|||
import { XOR } from "./@types/common";
|
||||
import { PosthogAnalytics } from "./PosthogAnalytics";
|
||||
import { ViewRoomPayload } from "./dispatcher/payloads/ViewRoomPayload";
|
||||
import VoipUserMapper from './VoipUserMapper';
|
||||
|
||||
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
|
||||
interface HTMLInputEvent extends Event {
|
||||
|
@ -1129,6 +1130,26 @@ export const Commands = [
|
|||
},
|
||||
category: CommandCategories.advanced,
|
||||
}),
|
||||
new Command({
|
||||
command: "tovirtual",
|
||||
description: _td("Switches to this room's virtual room, if it has one"),
|
||||
category: CommandCategories.advanced,
|
||||
isEnabled(): boolean {
|
||||
return CallHandler.instance.getSupportsVirtualRooms();
|
||||
},
|
||||
runFn: (roomId) => {
|
||||
return success((async () => {
|
||||
const room = await VoipUserMapper.sharedInstance().getVirtualRoomForRoom(roomId);
|
||||
if (!room) throw newTranslatableError("No virtual room for this room");
|
||||
dis.dispatch<ViewRoomPayload>({
|
||||
action: Action.ViewRoom,
|
||||
room_id: room.roomId,
|
||||
metricsTrigger: "SlashCommand",
|
||||
metricsViaKeyboard: true,
|
||||
});
|
||||
})());
|
||||
},
|
||||
}),
|
||||
new Command({
|
||||
command: "query",
|
||||
description: _td("Opens chat with the given user"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue