2025-11-11 01:10:05 -06:00
|
|
|
@using LANCommander.SDK.Models
|
2025-09-24 20:58:23 -05:00
|
|
|
@using LANCommander.SDK.Services
|
|
|
|
|
@inject ChatClient ChatClient
|
2025-11-10 18:07:33 -06:00
|
|
|
@inject ModalService ModalService
|
2025-09-06 13:09:47 -05:00
|
|
|
@namespace LANCommander.UI.Components
|
2025-08-21 17:47:30 -05:00
|
|
|
|
2025-08-24 19:34:14 -05:00
|
|
|
<Button OnClick="StartThread">New Thread</Button>
|
2025-08-21 17:47:30 -05:00
|
|
|
|
2025-11-13 23:39:55 -06:00
|
|
|
<SplitPane>
|
|
|
|
|
<Pane>
|
|
|
|
|
<ChatList Threads="_threads" />
|
|
|
|
|
</Pane>
|
|
|
|
|
<Pane>
|
|
|
|
|
<ChatThread Id="_currentThreadId" />
|
|
|
|
|
</Pane>
|
|
|
|
|
</SplitPane>
|
2025-08-21 17:47:30 -05:00
|
|
|
|
|
|
|
|
@code {
|
2025-11-03 23:27:05 -06:00
|
|
|
IEnumerable<SDK.Models.ChatThread> _threads = [];
|
2025-08-21 17:47:30 -05:00
|
|
|
|
2025-08-24 19:34:14 -05:00
|
|
|
Guid _currentThreadId;
|
2025-08-21 17:47:30 -05:00
|
|
|
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
{
|
2025-09-24 20:58:23 -05:00
|
|
|
_threads = await ChatClient.GetThreadsAsync();
|
2025-08-21 17:47:30 -05:00
|
|
|
}
|
2025-08-24 19:34:14 -05:00
|
|
|
|
|
|
|
|
async Task StartThread()
|
|
|
|
|
{
|
2025-11-11 01:10:05 -06:00
|
|
|
var users = await ChatClient.GetUsersAsync();
|
|
|
|
|
|
|
|
|
|
var modalOptions = new ModalOptions
|
2025-11-10 18:07:33 -06:00
|
|
|
{
|
2025-11-11 01:10:05 -06:00
|
|
|
Draggable = false,
|
|
|
|
|
Centered = true,
|
|
|
|
|
Title = "New Thread",
|
|
|
|
|
};
|
2025-08-24 19:34:14 -05:00
|
|
|
|
2025-11-13 18:18:03 -06:00
|
|
|
var modalRef = ModalService.CreateModal<ChatUsersDialog, IEnumerable<User>, IEnumerable<User>>(modalOptions, users);
|
2025-11-11 01:10:05 -06:00
|
|
|
|
|
|
|
|
modalRef.OnOk = async (users) =>
|
|
|
|
|
{
|
|
|
|
|
_currentThreadId = await ChatClient.StartThreadAsync(users.Select(u => u.Id.ToString()));
|
|
|
|
|
|
|
|
|
|
_threads = await ChatClient.GetThreadsAsync();
|
|
|
|
|
|
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
|
|
|
};
|
2025-08-24 19:34:14 -05:00
|
|
|
}
|
2025-08-21 17:47:30 -05:00
|
|
|
|
2025-08-24 19:34:14 -05:00
|
|
|
async Task OpenThread(Guid threadId)
|
2025-08-21 17:47:30 -05:00
|
|
|
{
|
2025-08-24 19:34:14 -05:00
|
|
|
_currentThreadId = threadId;
|
2025-08-21 17:47:30 -05:00
|
|
|
}
|
|
|
|
|
}
|