3 ChatMessageActionIcons,
6 } from '$lib/components/app/chat';
7 import { getMessageEditContext } from '$lib/contexts';
8 import { MessageRole } from '$lib/enums';
12 message: DatabaseMessage;
13 siblingInfo?: ChatMessageSiblingInfo | null;
17 assistantMessages: number;
18 messageTypes: string[];
20 showDeleteDialog: boolean;
23 onConfirmDelete: () => void;
24 onForkConversation?: (options: { name: string; includeAttachments: boolean }) => void;
25 onShowDeleteDialogChange: (show: boolean) => void;
26 onNavigateToSibling?: (siblingId: string) => void;
31 class: className = '',
40 onShowDeleteDialogChange,
46 const editCtx = getMessageEditContext();
50 aria-label="User message with actions"
51 class="chat-message-user group flex flex-col items-end gap-3 md:gap-2 {className}"
54 {#if editCtx.isEditing}
55 <ChatMessageEditForm />
57 <ChatMessageUserBubble
58 content={message.content}
59 attachments={message.extra}
63 {#if message.timestamp}
64 <div class="max-w-[80%]">
65 <ChatMessageActionIcons
66 actionsPosition="right"
75 {onShowDeleteDialogChange}
78 role={MessageRole.USER}