From c5c3c3506ec10e373d5c0ebb15146e4ed4e36df5 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Tue, 17 Oct 2023 17:11:49 +0200 Subject: Add profile management page --- MatrixRoomUtils.Web/Pages/User/Manage.razor | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 MatrixRoomUtils.Web/Pages/User/Manage.razor (limited to 'MatrixRoomUtils.Web/Pages/User/Manage.razor') diff --git a/MatrixRoomUtils.Web/Pages/User/Manage.razor b/MatrixRoomUtils.Web/Pages/User/Manage.razor new file mode 100644 index 0000000..281cbfc --- /dev/null +++ b/MatrixRoomUtils.Web/Pages/User/Manage.razor @@ -0,0 +1,55 @@ +@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(); + } + +} \ No newline at end of file -- cgit 1.4.1