diff options
Diffstat (limited to 'MatrixUtils.Web/Shared/UserListItem.razor')
-rw-r--r-- | MatrixUtils.Web/Shared/UserListItem.razor | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/MatrixUtils.Web/Shared/UserListItem.razor b/MatrixUtils.Web/Shared/UserListItem.razor new file mode 100644 index 0000000..525296e --- /dev/null +++ b/MatrixUtils.Web/Shared/UserListItem.razor @@ -0,0 +1,44 @@ +@using LibMatrix.Helpers +@using LibMatrix.EventTypes.Spec.State +@using LibMatrix.Homeservers +@using LibMatrix.Responses +<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="@(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) { + @ChildContent + } + </div> + +</div> + +@code { + + [Parameter] + public RenderFragment? ChildContent { get; set; } + + [Parameter] + public UserProfileResponse? User { get; set; } + + [Parameter] + public string UserId { get; set; } + + private AuthenticatedHomeserverGeneric _homeserver = null!; + + protected override async Task OnInitializedAsync() { + _homeserver = await RMUStorage.GetCurrentSessionOrNavigate(); + if (_homeserver is null) return; + + if (User == null) { + if (UserId == null) { + throw new ArgumentNullException(nameof(UserId)); + } + User = await _homeserver.GetProfileAsync(UserId); + } + + await base.OnInitializedAsync(); + } + +} \ No newline at end of file |