47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
@page "/chat"
|
|
@using FruitBankHybrid.Shared.Services
|
|
@inject ISignalRService SignalR
|
|
|
|
<h3>AI Chat</h3>
|
|
|
|
<input @bind="userName" placeholder="Your name" />
|
|
<input @bind="message" placeholder="Type message..." />
|
|
<button @onclick="Send">Send</button>
|
|
|
|
<ul>
|
|
@foreach (var m in messages)
|
|
{
|
|
<li><b>@m.User:</b> @m.Text</li>
|
|
}
|
|
</ul>
|
|
|
|
@code {
|
|
private string userName = "BlazorClient";
|
|
private string message;
|
|
private List<(string User, string Text)> messages = new();
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
SignalR.MessageReceived += OnMessageReceived;
|
|
await SignalR.InitializeAsync();
|
|
}
|
|
|
|
private void OnMessageReceived(string user, string text)
|
|
{
|
|
messages.Add((user, text));
|
|
InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private async Task Send()
|
|
{
|
|
await SignalR.SendMessageAsync(userName, message);
|
|
message = string.Empty;
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
SignalR.MessageReceived -= OnMessageReceived;
|
|
await SignalR.DisposeAsync();
|
|
}
|
|
}
|