enh: message delete confirm dialog

This commit is contained in:
Timothy Jaeryang Baek 2025-02-17 18:33:21 -08:00
parent dbe5d1ca08
commit f72e28a56c
2 changed files with 27 additions and 2 deletions

View File

@ -37,6 +37,9 @@
import Spinner from '$lib/components/common/Spinner.svelte';
import WebSearchResults from './ResponseMessage/WebSearchResults.svelte';
import Sparkles from '$lib/components/icons/Sparkles.svelte';
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
import Error from './Error.svelte';
import Citations from './Citations.svelte';
import CodeExecutions from './CodeExecutions.svelte';
@ -126,6 +129,8 @@
export let isLastMessage = true;
export let readOnly = false;
let showDeleteConfirm = false;
let model = null;
$: model = $models.find((m) => m.id === message.model);
@ -516,6 +521,14 @@
});
</script>
<DeleteConfirmDialog
bind:show={showDeleteConfirm}
title={$i18n.t('Delete message?')}
on:confirm={() => {
deleteMessageHandler();
}}
/>
{#key message.id}
<div
class=" flex w-full message-{message.id}"
@ -1247,7 +1260,7 @@
? 'visible'
: '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"
on:click={() => {
deleteMessageHandler();
showDeleteConfirm = true;
}}
>
<svg

View File

@ -13,6 +13,8 @@
import FileItem from '$lib/components/common/FileItem.svelte';
import Markdown from './Markdown.svelte';
import Image from '$lib/components/common/Image.svelte';
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
import localizedFormat from 'dayjs/plugin/localizedFormat';
const i18n = getContext('i18n');
@ -34,6 +36,8 @@
export let isFirstMessage: boolean;
export let readOnly: boolean;
let showDeleteConfirm = false;
let edit = false;
let editedContent = '';
let messageEditTextAreaElement: HTMLTextAreaElement;
@ -85,6 +89,14 @@
});
</script>
<DeleteConfirmDialog
bind:show={showDeleteConfirm}
title={$i18n.t('Delete message?')}
on:confirm={() => {
deleteMessageHandler();
}}
/>
<div class=" flex w-full user-message" dir={$settings.chatDirection} id="message-{message.id}">
{#if !($settings?.chatBubble ?? true)}
<div class={`shrink-0 ${($settings?.chatDirection ?? 'LTR') === 'LTR' ? 'mr-3' : 'ml-3'}`}>
@ -340,7 +352,7 @@
<button
class="invisible group-hover:visible p-1 rounded-sm dark:hover:text-white hover:text-black transition"
on:click={() => {
deleteMessageHandler();
showDeleteConfirm = true;
}}
>
<svg