32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
@inherits DComponentBase
|
|||
|
|
|
||
|
|
@* daisyUI Chat: https://daisyui.com/components/chat/ . One line of a conversation: an optional avatar, header and
|
||
|
|
footer around one DChatBubble (ChildContent). Avatar renders inside <div class="chat-image avatar">, so it takes
|
||
|
|
the avatar's frame, e.g. <div class="w-10 rounded-full"><img … /></div>. *@
|
||
|
|
<div @attributes="AdditionalAttributes" class="@CssClass">
|
||
|
|
@if (Avatar is not null)
|
||
|
|
{
|
||
|
|
<div class="chat-image avatar">@Avatar</div>
|
||
|
|
}
|
||
|
|
@if (Header is not null)
|
||
|
|
{
|
||
|
|
<div class="@Cx("chat-header", HeaderClass)">@Header</div>
|
||
|
|
}
|
||
|
|
@ChildContent
|
||
|
|
@if (Footer is not null)
|
||
|
|
{
|
||
|
|
<div class="@Cx("chat-footer", FooterClass)">@Footer</div>
|
||
|
|
}
|
||
|
|
</div>
|
||
|
|
|
||
|
|
@code {
|
||
|
|
[Parameter] public RenderFragment ChildContent { get; set; }
|
||
|
|
[Parameter] public RenderFragment Avatar { get; set; }
|
||
|
|
[Parameter] public RenderFragment Header { get; set; }
|
||
|
|
[Parameter] public RenderFragment Footer { get; set; }
|
||
|
|
[Parameter] public DChatPlacement Placement { get; set; }
|
||
|
|
[Parameter] public string HeaderClass { get; set; }
|
||
|
|
[Parameter] public string FooterClass { get; set; } = "opacity-50";
|
||
|
|
|
||
|
|
string CssClass => Cx("chat", Placement == DChatPlacement.End ? "chat-end" : "chat-start", Class);
|
||
|
|
}
|