fix: chat message input fix

This commit is contained in:
2025-04-10 17:15:57 +04:00
parent 3b4fed80e8
commit 1199685fcd
2 changed files with 21 additions and 5 deletions

View File

@@ -3,9 +3,12 @@ import { IconCheck, IconPaperclip, IconSend2, IconX } from "@tabler/icons-react"
import { useChatContext } from "../../../../pages/ClientsPage/contexts/ChatContext.tsx";
import ActionIconCopy from "../../../ActionIconCopy/ActionIconCopy.tsx";
import SelectedFile from "../SelectedFile/SelectedFile.tsx";
import React, { useRef } from "react";
const MessageInput = () => {
const formRef = useRef<HTMLFormElement>(null);
const {
submitMessage,
chat,
@@ -13,14 +16,22 @@ const MessageInput = () => {
files,
fileDialog,
isMessageSending,
isMessageEmpty,
} = useChatContext();
const handleKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {
if (event.key === "Enter" && !event.shiftKey) {
event.preventDefault();
formRef.current?.requestSubmit();
}
};
const getFiles = files.map(file => (
<SelectedFile key={file.name} file={file} />
));
return (
<form onSubmit={form.onSubmit(values => submitMessage(values))}>
<form ref={formRef} onSubmit={form.onSubmit(values => submitMessage(values))}>
<Stack gap={"xs"}>
<Divider />
{getFiles}
@@ -42,6 +53,7 @@ const MessageInput = () => {
</Tooltip>
<Textarea
{...form.getInputProps("message")}
onKeyDown={handleKeyDown}
w={"100%"}
minRows={1}
maxRows={4}
@@ -58,7 +70,7 @@ const MessageInput = () => {
<Button
variant={"default"}
type="submit"
disabled={isMessageSending}
disabled={isMessageSending || isMessageEmpty}
>
{form.values.messageId ? (
<IconCheck />