diff --git a/apps/web/components/chat/index.tsx b/apps/web/components/chat/index.tsx index 1625ec1b..b5bc4320 100644 --- a/apps/web/components/chat/index.tsx +++ b/apps/web/components/chat/index.tsx @@ -333,7 +333,11 @@ export function ChatSidebar({ }, []) const handleSend = (attachments?: import("ai").FileUIPart[]) => { - if ((!input.trim() && (!attachments || attachments.length === 0)) || status === "submitted" || status === "streaming") + if ( + (!input.trim() && (!attachments || attachments.length === 0)) || + status === "submitted" || + status === "streaming" + ) return if (!threadId) setThreadId(fallbackChatId) analytics.chatMessageSent({ source: "typed" }) diff --git a/apps/web/components/chat/input/index.tsx b/apps/web/components/chat/input/index.tsx index ee592e8b..bd347feb 100644 --- a/apps/web/components/chat/input/index.tsx +++ b/apps/web/components/chat/input/index.tsx @@ -9,7 +9,8 @@ import { motion } from "motion/react" import type { FileUIPart } from "ai" import { SendButton, StopButton } from "./actions" -const ACCEPTED_FILE_TYPES = "image/jpeg,image/png,image/gif,image/webp,application/pdf" +const ACCEPTED_FILE_TYPES = + "image/jpeg,image/png,image/gif,image/webp,application/pdf" const MAX_FILE_SIZE_MB = 10 const MAX_TOTAL_SIZE_MB = 20 const MAX_FILE_COUNT = 5 @@ -147,8 +148,11 @@ export default function ChatInput({ const attachmentChips = attachments.length > 0 && (
{attachments.map((att, i) => ( - // biome-ignore lint/suspicious/noArrayIndexKey: stable list - removeAttachment(i)} /> + removeAttachment(i)} + /> ))}
) @@ -263,7 +267,10 @@ export default function ChatInput({ {isResponding ? ( ) : ( - + )} @@ -287,12 +294,20 @@ export default function ChatInput({ rows={1} disabled={isResponding} /> -
+
{paperclipButton} {isResponding ? ( ) : ( - + )}
diff --git a/apps/web/components/chat/message/user-message.tsx b/apps/web/components/chat/message/user-message.tsx index cb08d35d..e756a26f 100644 --- a/apps/web/components/chat/message/user-message.tsx +++ b/apps/web/components/chat/message/user-message.tsx @@ -21,7 +21,8 @@ export const UserMessage = memo(function UserMessage({ .join(" ") const files = message.parts.filter( - (part): part is Extract => part.type === "file", + (part): part is Extract => + part.type === "file", ) return ( @@ -33,7 +34,6 @@ export const UserMessage = memo(function UserMessage({ return isImage ? ( // eslint-disable-next-line @next/next/no-img-element {f.filename ) : (
- {f.filename ?? "file"} + + {f.filename ?? "file"} +
) })} @@ -57,18 +58,20 @@ export const UserMessage = memo(function UserMessage({

{text}

)} - {text && } + {text && ( + + )} ) })