@page "/Tools/Debug/JoinRoom" @using System.Collections.ObjectModel

Join room


Room ID:
Via server:
Join

@foreach (var line in Log) {
@line

} @code { AuthenticatedHomeserverGeneric? hs { get; set; } ObservableCollection Log { get; set; } = new ObservableCollection(); [Parameter, SupplyParameterFromQuery(Name = "roomId")] public string? RoomId { get; set; } [Parameter, SupplyParameterFromQuery(Name = "via")] public string? Server { get; set; } protected override async Task OnInitializedAsync() { hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true); if (hs is null) return; Log.CollectionChanged += (sender, args) => StateHasChanged(); StateHasChanged(); Console.WriteLine("Rerendered!"); await base.OnInitializedAsync(); } private async Task Join() { if (string.IsNullOrWhiteSpace(RoomId)) return; var room = hs.GetRoom(RoomId); Log.Add("Got room object..."); if (hs is AuthenticatedHomeserverSynapse synapse) { await synapse.Admin.BlockRoom(RoomId, false); Log.Add($"Synapse: unblocked room"); } try { await room.JoinAsync([Server], checkIfAlreadyMember: false); Log.Add("Joined room!"); } catch (Exception e) { Log.Add(e.ToString()); } Log.Add("Done!"); } }