@using LANCommander.SDK.Models @using LANCommander.SDK.Services @inject IChatClient ChatClient @inject ModalService ModalService @namespace LANCommander.UI.Components @code { IEnumerable _threads = []; SDK.Models.ChatThread? _thread; 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) => { var threadId = await ChatClient.StartThreadAsync(users.Select(u => u.Id.ToString())); _thread = await ChatClient.GetThreadAsync(threadId); _threads = await ChatClient.GetThreadsAsync(); await InvokeAsync(StateHasChanged); }; } }