update chat

This commit is contained in:
gil zhang
2024-11-22 00:09:10 +08:00
parent 0fd386f03f
commit e8231db43a
8 changed files with 47 additions and 8 deletions
@@ -4,14 +4,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
xmlns:local="using:Verdure.Braincase.Copilot.Controls.Chat"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:model="using:Verdure.Braincase.Copilot.ViewModels"
xmlns:models="using:BotSharp.Abstraction.Conversations.Models"
xmlns:myconverters="using:Verdure.Braincase.WinUI.Common.Converters"
mc:Ignorable="d">
<local:ChatModuleControl.Resources>
<DataTemplate x:Key="ContactListViewTemplate" x:DataType="model:ConversationViewModel">
<Grid Padding="12,8" ColumnSpacing="8">
@@ -29,7 +29,7 @@
VerticalAlignment="Center"
Foreground="{ThemeResource TextFillColorTertiaryBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{x:Bind CreatedTime, Converter={StaticResource UtcToLocalTimeConverter}, ConverterParameter='MM-dd'}" />
Text="{x:Bind CreatedTime, Converter={StaticResource UtcToLocalTimeConverter}, ConverterParameter='MM-dd HH:mm:ss'}" />
</Grid>
</DataTemplate>
<myconverters:UtcToLocalTimeConverter x:Key="UtcToLocalTimeConverter" />
@@ -46,7 +46,8 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="20"
Text="{x:Bind ViewModel.SelectedConversation.Title, Mode=OneWay}" />
Text="{x:Bind ViewModel.SelectedConversation.Title, Mode=OneWay}"
TextTrimming="CharacterEllipsis" />
<StackPanel
Grid.Column="1"
HorizontalAlignment="Right"
@@ -68,12 +69,26 @@
IsItemClickEnabled="True"
ItemClick="ConvList_ItemClick"
ItemTemplate="{StaticResource ContactListViewTemplate}"
ItemsSource="{x:Bind ViewModel.ConvList, Mode=OneWay}" />
ItemsSource="{x:Bind ViewModel.ConvList, Mode=OneWay}">
<ListView.ContextFlyout>
<MenuFlyout>
<MenuFlyoutItem
x:Name="DelConv"
x:Uid="DelConvMenu"
Foreground="Red">
<i:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="Click">
<ic:InvokeCommandAction Command="{x:Bind ViewModel.DeleteConvCommand}" CommandParameter="{x:Bind ConvList.SelectedItem, Mode=TwoWay}" />
</ic:EventTriggerBehavior>
</i:Interaction.Behaviors>
</MenuFlyoutItem>
</MenuFlyout>
</ListView.ContextFlyout>
</ListView>
</StackPanel>
</Flyout>
</Button.Flyout>
</Button>
</StackPanel>
</Grid>
</local:ChatModuleControl>
@@ -936,4 +936,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>Delete</value>
</data>
</root>
@@ -912,4 +912,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>Delete</value>
</data>
</root>
@@ -967,4 +967,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框输入消息愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>删除</value>
</data>
</root>
@@ -184,7 +184,7 @@ public partial class ChatViewModel
SelectedConv = new ConversationViewModel(convList.FirstOrDefault() ?? new Conversation(), null, null);
//ConversationList = new ObservableCollection<Conversation>(convList);
if (SelectedConv == null) return;
if (SelectedConv == null || string.IsNullOrEmpty(SelectedConv.Id)) return;
_conversationService.SetConversationId(SelectedConv.Id, new List<MessageState>());
var historys = _conversationService.GetDialogHistory(fromBreakpoint: false);
foreach (var history in historys)
@@ -216,7 +216,13 @@ public partial class ChatViewModel
}
[RelayCommand]
private void Delete()
private async Task DeleteConvAsync(ConversationViewModel? conv)
{
if (conv != null)
{
ConvList.Remove(conv);
MessageList.Clear();
await _conversationService.DeleteConversations(new List<string> { conv.Id });
}
}
}
@@ -936,4 +936,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>Delete</value>
</data>
</root>
@@ -912,4 +912,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>Delete</value>
</data>
</root>
@@ -967,4 +967,7 @@
<data name="HomeChatHeader.Description" xml:space="preserve">
<value>请在输入框输入消息愉快的和我聊天吧!</value>
</data>
<data name="DelConvMenu.Text" xml:space="preserve">
<value>删除</value>
</data>
</root>