about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Shared/UserListItem.razor
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Web/Shared/UserListItem.razor')
-rw-r--r--MatrixRoomUtils.Web/Shared/UserListItem.razor30
1 files changed, 10 insertions, 20 deletions
diff --git a/MatrixRoomUtils.Web/Shared/UserListItem.razor b/MatrixRoomUtils.Web/Shared/UserListItem.razor
index 9010820..96e8e64 100644
--- a/MatrixRoomUtils.Web/Shared/UserListItem.razor
+++ b/MatrixRoomUtils.Web/Shared/UserListItem.razor
@@ -1,8 +1,9 @@
 @using LibMatrix.Helpers
 @using LibMatrix.EventTypes.Spec.State
+@using LibMatrix.Homeservers
 <div style="background-color: #ffffff11; border-radius: 25px; margin: 8px; width: fit-Content;">
-    <img style="@(ChildContent is not null ? "vertical-align: baseline;" : "") width: 32px; height:  32px; border-radius: 50%;" src="@profileAvatar"/>
-    <span style="vertical-align: middle; margin-right: 8px; border-radius: 75px;">@profileName</span>
+    <img style="@(ChildContent is not null ? "vertical-align: baseline;" : "") width: 32px; height:  32px; border-radius: 50%;" src="@(string.IsNullOrWhiteSpace(User?.AvatarUrl) ? "https://api.dicebear.com/6.x/identicon/svg?seed=" + UserId : User.AvatarUrl)"/>
+    <span style="vertical-align: middle; margin-right: 8px; border-radius: 75px;">@User?.DisplayName</span>
 
     <div style="display: inline-block;">
         @if (ChildContent is not null) {
@@ -18,36 +19,25 @@
     public RenderFragment? ChildContent { get; set; }
 
     [Parameter]
-    public ProfileResponseEventContent User { get; set; }
+    public ProfileResponseEventContent? User { get; set; }
 
     [Parameter]
     public string UserId { get; set; }
 
-    private string? profileAvatar { get; set; } = "/icon-192.png";
-    private string? profileName { get; set; } = "Loading...";
-
-    private static SemaphoreSlim _semaphoreSlim = new(8);
+    private AuthenticatedHomeserverGeneric _homeserver = null!;
 
     protected override async Task OnInitializedAsync() {
-        await base.OnInitializedAsync();
-
-        var hs = await MRUStorage.GetCurrentSessionOrNavigate();
-        if (hs is null) return;
-
-        await _semaphoreSlim.WaitAsync();
+        _homeserver = await MRUStorage.GetCurrentSessionOrNavigate();
+        if (_homeserver is null) return;
 
         if (User == null) {
             if (UserId == null) {
                 throw new ArgumentNullException(nameof(UserId));
             }
-            User = await hs.GetProfileAsync(UserId);
+            User = await _homeserver.GetProfileAsync(UserId);
         }
 
-    // UserId = User.;
-        profileAvatar = await hsResolver.ResolveMediaUri(hs.ServerName, User.AvatarUrl);
-        profileName = User.DisplayName;
-
-        _semaphoreSlim.Release();
+        await base.OnInitializedAsync();
     }
 
-}
+}
\ No newline at end of file