@page "/chat/{chatId}" @inject IHttpClientFactory ClientFactory @inject IJSRuntime JSRuntime @name
@name
    @if (!isLoading && Messages != null) { @foreach (var item in Messages) { if (item.Role != "User") { if (@item.Text == "Waiting for response") {
    Waiting for response
    } else {
  • @item.Text
  • } } else {
  • @item.Text

  • } } }
@if (Suggestion.Count != 0) {
Several possible options
@foreach (var item in Suggestion) {
@item
}
}
Send message
@code { [Parameter] public string chatId { get; set; } public string inputValue = ""; protected override async Task OnParametersSetAsync() { await LoadMessages(); } private void InputChanged(ChangeEventArgs e) { inputValue = e.Value.ToString(); } public void Enter(KeyboardEventArgs e) { if (e.Code == "Enter" || e.Code == "NumpadEnter") { AddNewMessage(inputValue); } } private ElementReference chatMessageRef; protected override async Task OnAfterRenderAsync(bool firstRender) { await JSRuntime.InvokeVoidAsync("myJavaScriptHeight"); await JSRuntime.InvokeVoidAsync("scrollToBottom", chatMessageRef); } private async Task UpdateSideMenu(string wishlistId) { await JSRuntime.InvokeVoidAsync("myJavaScriptFunction", wishlistId); } private void ClickOption(string item) { inputValue = item; AddNewMessage(inputValue); } }