@inherits DComponentBase @* daisyUI Avatar: https://daisyui.com/components/avatar/ . Class goes on the inner frame, where daisyUI puts the size and shape (w-16 rounded-full, mask mask-squircle) and, for a placeholder, the colours (bg-neutral text-neutral-content); the other attributes go on the outer .avatar. Without Src the frame shows ChildContent. *@
@if (Src is not null) { @Alt } else { @ChildContent }
@code { [Parameter] public string Src { get; set; } // "" on purpose (the documented exception to "no string defaults"): an empty alt marks a decorative image. [Parameter] public string Alt { get; set; } = ""; /// Shown in the frame when there is no Src, e.g. initials with Placeholder. [Parameter] public RenderFragment ChildContent { get; set; } [Parameter] public DAvatarStatus Status { get; set; } /// Centre ChildContent in the frame (avatar-placeholder); give the frame a bg-* in Class. [Parameter] public bool Placeholder { get; set; } string CssClass => Cx("avatar", StatusClass, Placeholder ? "avatar-placeholder" : null); string StatusClass => Status switch { DAvatarStatus.Online => "avatar-online", DAvatarStatus.Offline => "avatar-offline", _ => null }; }