fix: chat message input fix
This commit is contained in:
@@ -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 />
|
||||
|
||||
Reference in New Issue
Block a user