@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; } }