From d8b91f1c5e07a1aa30963977a145ff8ecde10a41 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 17 Jul 2023 03:14:38 +0200 Subject: Improve timeline --- MatrixRoomUtils.Web/Shared/InlineUserItem.razor | 26 ++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'MatrixRoomUtils.Web/Shared/InlineUserItem.razor') diff --git a/MatrixRoomUtils.Web/Shared/InlineUserItem.razor b/MatrixRoomUtils.Web/Shared/InlineUserItem.razor index f9cef91..25db838 100644 --- a/MatrixRoomUtils.Web/Shared/InlineUserItem.razor +++ b/MatrixRoomUtils.Web/Shared/InlineUserItem.razor @@ -22,6 +22,9 @@ [Parameter] public ProfileResponseEventData User { get; set; } + [Parameter] + public ProfileResponseEventData MemberEvent { get; set; } + [Parameter] public string? UserId { get; set; } @@ -31,21 +34,34 @@ [Parameter] public string? ProfileName { get; set; } = null; + [Parameter] + public AuthenticatedHomeServer? HomeServer { get; set; } + private static SemaphoreSlim _semaphoreSlim = new(128); protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); - var hs = await MRUStorage.GetCurrentSessionOrNavigate(); - if(hs is null) return; + HomeServer ??= await MRUStorage.GetCurrentSessionOrNavigate(); + if(HomeServer is null) return; await _semaphoreSlim.WaitAsync(); - if (User == null && UserId == null) + if (User == null && UserId == null && MemberEvent != null) throw new ArgumentNullException(nameof(UserId)); - User ??= await hs.GetProfile(UserId); + + if (MemberEvent != null) { + User = new() { + AvatarUrl = MemberEvent.AvatarUrl, + DisplayName = MemberEvent.DisplayName + }; + } + + if (User is null && UserId is not null) { + User ??= await HomeServer.GetProfile(UserId); + } - ProfileAvatar ??= MediaResolver.ResolveMediaUri(hs.FullHomeServerDomain, User.AvatarUrl); + ProfileAvatar ??= MediaResolver.ResolveMediaUri(HomeServer.FullHomeServerDomain, User.AvatarUrl); ProfileName ??= User.DisplayName; _semaphoreSlim.Release(); -- cgit 1.5.1