@page "/User/Manage" @using LibMatrix.Homeservers @using LibMatrix.EventTypes.Spec.State @using ArcaneLibs.Extensions

Manage user - @HomeServer?.WhoAmI?.UserId


@if (Profile is not null) {

Profile


Display name:
Avatar URL:
Update profile Update profile (restore room overrides)
@if (Busy) {
Busy processing profile update, please do not leave this page...
} } @code { private AuthenticatedHomeserverGeneric? HomeServer { get; set; } private ProfileResponseEventContent? Profile { get; set; } private bool Busy { get; set; } = false; protected override async Task OnInitializedAsync() { HomeServer = await MRUStorage.GetCurrentSessionOrNavigate(); if (HomeServer is null) return; if (HomeServer.WhoAmI?.UserId is not null) Profile = (await HomeServer.GetProfileAsync(HomeServer.WhoAmI.UserId)).DeepClone(); await base.OnInitializedAsync(); } private async Task AvatarChanged(InputFileChangeEventArgs arg) { var res = await HomeServer.UploadFile(arg.File.Name, arg.File.OpenReadStream(), arg.File.ContentType); Console.WriteLine(res); Profile.AvatarUrl = res; StateHasChanged(); } private async Task UpdateProfile(bool restoreRoomProfiles = false) { Busy = true; StateHasChanged(); await HomeServer.UpdateProfileAsync(Profile, restoreRoomProfiles); Busy = false; StateHasChanged(); } }