Skip to content

Commit f72e28a

Browse files
committed
enh: message delete confirm dialog
1 parent dbe5d1c commit f72e28a

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/lib/components/chat/Messages/ResponseMessage.svelte

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
import Spinner from '$lib/components/common/Spinner.svelte';
3838
import WebSearchResults from './ResponseMessage/WebSearchResults.svelte';
3939
import Sparkles from '$lib/components/icons/Sparkles.svelte';
40+
41+
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
42+
4043
import Error from './Error.svelte';
4144
import Citations from './Citations.svelte';
4245
import CodeExecutions from './CodeExecutions.svelte';
@@ -126,6 +129,8 @@
126129
export let isLastMessage = true;
127130
export let readOnly = false;
128131
132+
let showDeleteConfirm = false;
133+
129134
let model = null;
130135
$: model = $models.find((m) => m.id === message.model);
131136
@@ -516,6 +521,14 @@
516521
});
517522
</script>
518523

524+
<DeleteConfirmDialog
525+
bind:show={showDeleteConfirm}
526+
title={$i18n.t('Delete message?')}
527+
on:confirm={() => {
528+
deleteMessageHandler();
529+
}}
530+
/>
531+
519532
{#key message.id}
520533
<div
521534
class=" flex w-full message-{message.id}"
@@ -1247,7 +1260,7 @@
12471260
? 'visible'
12481261
: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button"
12491262
on:click={() => {
1250-
deleteMessageHandler();
1263+
showDeleteConfirm = true;
12511264
}}
12521265
>
12531266
<svg

src/lib/components/chat/Messages/UserMessage.svelte

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import FileItem from '$lib/components/common/FileItem.svelte';
1414
import Markdown from './Markdown.svelte';
1515
import Image from '$lib/components/common/Image.svelte';
16+
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
17+
1618
import localizedFormat from 'dayjs/plugin/localizedFormat';
1719
1820
const i18n = getContext('i18n');
@@ -34,6 +36,8 @@
3436
export let isFirstMessage: boolean;
3537
export let readOnly: boolean;
3638
39+
let showDeleteConfirm = false;
40+
3741
let edit = false;
3842
let editedContent = '';
3943
let messageEditTextAreaElement: HTMLTextAreaElement;
@@ -85,6 +89,14 @@
8589
});
8690
</script>
8791

92+
<DeleteConfirmDialog
93+
bind:show={showDeleteConfirm}
94+
title={$i18n.t('Delete message?')}
95+
on:confirm={() => {
96+
deleteMessageHandler();
97+
}}
98+
/>
99+
88100
<div class=" flex w-full user-message" dir={$settings.chatDirection} id="message-{message.id}">
89101
{#if !($settings?.chatBubble ?? true)}
90102
<div class={`shrink-0 ${($settings?.chatDirection ?? 'LTR') === 'LTR' ? 'mr-3' : 'ml-3'}`}>
@@ -340,7 +352,7 @@
340352
<button
341353
class="invisible group-hover:visible p-1 rounded-sm dark:hover:text-white hover:text-black transition"
342354
on:click={() => {
343-
deleteMessageHandler();
355+
showDeleteConfirm = true;
344356
}}
345357
>
346358
<svg

0 commit comments

Comments
 (0)