@using AIStudio.Chat
@using AIStudio.Chat.Embedded
@inherits MSGComponentBase
@if (!string.IsNullOrWhiteSpace(this.Heading))
{
@this.Heading
}
@if (this.conversation is null)
{
}
else if (this.conversation.Thread is not { } thread)
{
@if (this.CanReset)
{
@TA("AI Studio cannot open this conversation. Its file may be damaged, or a newer version of AI Studio stored it. You can start the conversation over, which deletes it.")
@T("Start over")
}
else
{
@T("AI Studio cannot open this conversation. Its file may be damaged, or a newer version of AI Studio stored it.")
}
}
else
{
@if (!this.conversation.HasVisibleMessages && !this.IsRunning && !string.IsNullOrWhiteSpace(this.Introduction))
{
@this.Introduction
}
@if (!this.IsReadOnly && EmbeddedChatOpening.OffersStart(this.StartRequest, this.conversation))
{
@T("Start the conversation")
}
@foreach (var block in thread.Blocks)
{
@if (block is { HideFromUser: false, Content: not null })
{
}
}
@if (!this.IsReadOnly)
{
@if (this.ProviderIssue is { } issue)
{
@issue
}
@* Laid out like the input of the chat page: sending through the icon in the field, and the tokens as its helper text. *@
@if (this.AllowsAttachments)
{
}
@if (this.QuickMessage is { } quickMessage && this.conversation.HasAnswer)
{
@quickMessage.Label
}
@if (this.IsRunning)
{
@T("Stop")
}
@if (this.CanReset && this.conversation.HasVisibleMessages)
{
@T("Start over")
}
@if (this.QuickMessage is { Hint.Length: > 0 } hintedMessage && this.conversation.HasAnswer)
{
@hintedMessage.Hint
}
}
}