@page "/Tools/LeaveRoom" @using System.Diagnostics @using ArcaneLibs.Extensions @using LibMatrix.Homeservers @using LibMatrix.RoomTypes @using System.Collections.ObjectModel

Leave room


Room ID:
Leave

@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; } protected override async Task OnInitializedAsync() { hs = await RMUStorage.GetCurrentSessionOrNavigate(); if (hs is null) return; Log.CollectionChanged += (sender, args) => StateHasChanged(); StateHasChanged(); Console.WriteLine("Rerendered!"); await base.OnInitializedAsync(); } private async Task Leave() { if(string.IsNullOrWhiteSpace(RoomId)) return; var room = hs.GetRoom(RoomId); Log.Add("Got room object..."); try { await room.LeaveAsync(); Log.Add("Left room!"); } catch (Exception e) { Log.Add(e.ToString()); } try { await room.ForgetAsync(); Log.Add("Forgot room!"); } catch (Exception e) { Log.Add(e.ToString()); } Log.Add("Done!"); } }