diff --git a/frontend/src/resources/css/_chat.scss b/frontend/src/resources/css/_chat.scss
index d6f405f..d342d08 100644
--- a/frontend/src/resources/css/_chat.scss
+++ b/frontend/src/resources/css/_chat.scss
@@ -189,6 +189,7 @@
.message-content {
word-wrap: break-word;
margin-bottom: 0.3rem;
+ white-space: pre-wrap;
}
.message-reply {
@@ -197,6 +198,7 @@
padding: 0.5rem;
margin-bottom: 0.5rem;
border-left: 3px solid $color-dark-primary;
+ user-select: none;
.reply-content {
display: flex;
@@ -225,6 +227,7 @@
color: $color-dark-on-surface-variant;
margin-top: 0.3rem;
text-align: right;
+ user-select: none;
}
}
diff --git a/frontend/src/ui/components/chat/ChatInputWrapper.tsx b/frontend/src/ui/components/chat/ChatInputWrapper.tsx
index 587a878..19f4dd3 100644
--- a/frontend/src/ui/components/chat/ChatInputWrapper.tsx
+++ b/frontend/src/ui/components/chat/ChatInputWrapper.tsx
@@ -8,7 +8,7 @@ interface ChatInputWrapperProps {
export function ChatInputWrapper({ onSendMessage }: ChatInputWrapperProps) {
const [message, setMessage] = useState("");
- const handleSubmit = async (e: React.FormEvent) => {
+ const handleSubmit = async (e: React.FormEvent | Event) => {
e.preventDefault();
if (message.trim()) {
onSendMessage(message);
@@ -27,7 +27,8 @@ export function ChatInputWrapper({ onSendMessage }: ChatInputWrapperProps) {
autoComplete="off"
text={message}
rows={1}
- onTextChange={(value) => setMessage(value)} />
+ onTextChange={(value) => setMessage(value)}
+ onEnter={handleSubmit} />
diff --git a/frontend/src/ui/components/core/RichTextArea.tsx b/frontend/src/ui/components/core/RichTextArea.tsx
index 75038cb..3543438 100644
--- a/frontend/src/ui/components/core/RichTextArea.tsx
+++ b/frontend/src/ui/components/core/RichTextArea.tsx
@@ -3,8 +3,8 @@ import { useEffect, useRef, useCallback, useLayoutEffect } from "react";
interface RichTextAreaProps {
text: string;
onTextChange: (value: string) => void;
- onEnter?: "newLine" | null | (() => void);
- onCtrlEnter?: (() => void) | null;
+ onEnter?: "newLine" | null | ((e: React.KeyboardEvent) => void);
+ onCtrlEnter?: ((e: React.KeyboardEvent) => void) | null;
placeholder?: string;
id?: string;
className?: string;
@@ -155,7 +155,7 @@ export function RichTextArea({
if (isCtrlEnter) {
e.preventDefault();
if (typeof onCtrlEnter === "function") {
- onCtrlEnter();
+ onCtrlEnter(e);
}
return;
}
@@ -171,7 +171,7 @@ export function RichTextArea({
}
if (typeof onEnter === "function") {
e.preventDefault();
- onEnter();
+ onEnter(e);
return;
}
}