@using LANCommander.SDK.Models
@using LANCommander.SDK.Services
@inject ChatClient ChatClient
@inject ModalService ModalService
@namespace LANCommander.UI.Components
@code {
IEnumerable _threads = [];
Guid _currentThreadId;
protected override async Task OnInitializedAsync()
{
_threads = await ChatClient.GetThreadsAsync();
}
async Task StartThread()
{
var users = await ChatClient.GetUsersAsync();
var modalOptions = new ModalOptions
{
Draggable = false,
Centered = true,
Title = "New Thread",
};
var modalRef = ModalService.CreateModal, IEnumerable>(modalOptions, users);
modalRef.OnOk = async (users) =>
{
_currentThreadId = await ChatClient.StartThreadAsync(users.Select(u => u.Id.ToString()));
_threads = await ChatClient.GetThreadsAsync();
await InvokeAsync(StateHasChanged);
};
}
async Task OpenThread(Guid threadId)
{
_currentThreadId = threadId;
}
}