about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Shared/InlineUserItem.razor
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2023-07-17 03:14:38 +0200
committerTheArcaneBrony <myrainbowdash949@gmail.com>2023-07-17 03:14:38 +0200
commitd8b91f1c5e07a1aa30963977a145ff8ecde10a41 (patch)
treeaf12f3a2f81f75f5cd8e7e39c1b86d0f25374ffc /MatrixRoomUtils.Web/Shared/InlineUserItem.razor
parentHandle external logouts (diff)
downloadMatrixUtils-d8b91f1c5e07a1aa30963977a145ff8ecde10a41.tar.xz
Improve timeline
Diffstat (limited to 'MatrixRoomUtils.Web/Shared/InlineUserItem.razor')
-rw-r--r--MatrixRoomUtils.Web/Shared/InlineUserItem.razor26
1 files changed, 21 insertions, 5 deletions
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
@@ -23,6 +23,9 @@ public ProfileResponseEventData User { get; set; } [Parameter] + public ProfileResponseEventData MemberEvent { get; set; } + + [Parameter] public string? UserId { get; set; } [Parameter] @@ -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();