From 15900c2fb81c092bd35c6001045ee65df0822472 Mon Sep 17 00:00:00 2001 From: ktutak1337 Date: Sat, 4 May 2024 06:46:05 +0200 Subject: [PATCH] Code(WEB::Drawer): Implement chat deletion from history --- .../Components/ChatHistoryItem.razor | 14 ++++++++++---- .../StellarChat.Client.Web/Components/Drawer.razor | 9 +++++++-- .../Services/Chat/ChatService.cs | 7 +++++++ .../Services/Chat/IChatService.cs | 1 + 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Client/StellarChat.Client.Web/Components/ChatHistoryItem.razor b/src/Client/StellarChat.Client.Web/Components/ChatHistoryItem.razor index 00a42ff..8f8f933 100644 --- a/src/Client/StellarChat.Client.Web/Components/ChatHistoryItem.razor +++ b/src/Client/StellarChat.Client.Web/Components/ChatHistoryItem.razor @@ -1,25 +1,31 @@ @inject NavigationManager NavigationManager +@inject IChatService _chatService +@inject IDialogService _dialogService
- @ChatSessionIteam?.Title + @ChatSessionItem?.Title Rename - Delete + Delete
@code { - [Parameter] public ChatSessionResponse? ChatSessionIteam { get; set; } + [Parameter] public ChatSessionResponse? ChatSessionItem { get; set; } + [Parameter] public EventCallback OnDeleteChat { get; set; } private void NavigateToChat() { - + } + + private async Task DeleteChat() + => await OnDeleteChat.InvokeAsync(ChatSessionItem); } diff --git a/src/Client/StellarChat.Client.Web/Components/Drawer.razor b/src/Client/StellarChat.Client.Web/Components/Drawer.razor index 035b32c..f6b8dbe 100644 --- a/src/Client/StellarChat.Client.Web/Components/Drawer.razor +++ b/src/Client/StellarChat.Client.Web/Components/Drawer.razor @@ -34,7 +34,7 @@ @foreach (var chatSession in ChatSessions) { - + } @@ -45,7 +45,6 @@ - @code { [Parameter] @@ -58,6 +57,12 @@ protected override async Task OnInitializedAsync() => await LoadChatSessions(); + private async Task DeleteChatSession(ChatSessionResponse chatSession) + { + await _chatService.DeleteChatSession(chatSession.Id); + ChatSessions.Remove(chatSession); + } + private async Task LoadChatSessions() { var response = await _chatService.BrowseChatSessions(); diff --git a/src/Client/StellarChat.Client.Web/Services/Chat/ChatService.cs b/src/Client/StellarChat.Client.Web/Services/Chat/ChatService.cs index b65dffd..1dcb5a5 100644 --- a/src/Client/StellarChat.Client.Web/Services/Chat/ChatService.cs +++ b/src/Client/StellarChat.Client.Web/Services/Chat/ChatService.cs @@ -19,4 +19,11 @@ public async ValueTask> BrowseChatSessions(int page = return result!; } + + public async ValueTask DeleteChatSession(Guid id) + { + var httpClient = _httpClientFactory.CreateClient("WebAPI"); + + await httpClient.DeleteAsync($"/chat-history/sessions/{id}"); + } } diff --git a/src/Client/StellarChat.Client.Web/Services/Chat/IChatService.cs b/src/Client/StellarChat.Client.Web/Services/Chat/IChatService.cs index 58ae5c8..b16776d 100644 --- a/src/Client/StellarChat.Client.Web/Services/Chat/IChatService.cs +++ b/src/Client/StellarChat.Client.Web/Services/Chat/IChatService.cs @@ -7,4 +7,5 @@ namespace StellarChat.Client.Web.Services.Chat; public interface IChatService { ValueTask> BrowseChatSessions(int page = 0, int pageSize = 0); + ValueTask DeleteChatSession(Guid id); }