diff --git a/apps/sim/app/chat/components/message/message.tsx b/apps/sim/app/chat/components/message/message.tsx index a22bad3bbd..5339dcd0af 100644 --- a/apps/sim/app/chat/components/message/message.tsx +++ b/apps/sim/app/chat/components/message/message.tsx @@ -83,20 +83,44 @@ export const ClientChatMessage = memo(
{ - if (attachment.dataUrl?.trim()) { + const validDataUrl = attachment.dataUrl?.trim() + if (validDataUrl?.startsWith('data:')) { e.preventDefault() - window.open(attachment.dataUrl, '_blank') + e.stopPropagation() + const newWindow = window.open('', '_blank') + if (newWindow) { + newWindow.document.write(` + + + + ${attachment.name} + + + + ${attachment.name} + + + `) + newWindow.document.close() + } } }} > - {isImage ? ( + {isImage && + attachment.dataUrl?.trim() && + attachment.dataUrl.startsWith('data:') ? ( {attachment.name} )} -
-
- {/* Render text content if present and not just file count message */} - {message.content && !String(message.content).startsWith('Sent') && ( + {/* Only render message bubble if there's actual text content (not just file count message) */} + {message.content && !String(message.content).startsWith('Sent') && ( +
+
{isJsonObject ? (
{JSON.stringify(message.content, null, 2)}
@@ -137,9 +161,9 @@ export const ClientChatMessage = memo( {message.content as string} )}
- )} +
-
+ )}
) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/chat.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/chat.tsx index aec9495f3c..5ec720eae7 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/chat.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/chat.tsx @@ -476,6 +476,8 @@ export function Chat({ chatMessage, setChatMessage }: ChatProps) { focusInput(100) }, [ chatMessage, + chatFiles, + isUploadingFiles, activeWorkflowId, isExecuting, promptHistory, @@ -487,6 +489,9 @@ export function Chat({ chatMessage, setChatMessage }: ChatProps) { appendMessageContent, finalizeMessageStream, focusInput, + setChatMessage, + setChatFiles, + setUploadErrors, ]) // Handle key press diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/components/chat-message/chat-message.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/components/chat-message/chat-message.tsx index 28c07c2e6d..816dae5a00 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/components/chat-message/chat-message.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/chat/components/chat-message/chat-message.tsx @@ -95,16 +95,40 @@ export function ChatMessage({ message }: ChatMessageProps) {
{ - if (attachment.dataUrl?.trim()) { + const validDataUrl = attachment.dataUrl?.trim() + if (validDataUrl?.startsWith('data:')) { e.preventDefault() - window.open(attachment.dataUrl, '_blank') + e.stopPropagation() + const newWindow = window.open('', '_blank') + if (newWindow) { + newWindow.document.write(` + + + + ${attachment.name} + + + + ${attachment.name} + + + `) + newWindow.document.close() + } } }} > - {isImage && attachment.dataUrl ? ( + {isImage && + attachment.dataUrl?.trim() && + attachment.dataUrl.startsWith('data:') ? ( {attachment.name} )} -
-
-
- {/* Render text content if present and not just file count message */} - {formattedContent && !formattedContent.startsWith('Uploaded') && ( + {/* Only render message bubble if there's actual text content (not just file count message) */} + {formattedContent && !formattedContent.startsWith('Uploaded') && ( +
+
+
- )} +
-
+ )}
) }