Skip to content

Commit e7dcae0

Browse files
authored
Merge pull request #95 from SWMTheFirstTake/dev
macOS 에서 엔터 치면 마지막 글자가 한 번 더 들어가는 버그 수정
2 parents 9acd690 + 9dd7430 commit e7dcae0

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/components/chat/message/ChatInputBox.tsx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { Button } from '@/components/ui/button';
44
import { Plus, Send } from 'lucide-react';
55
import { Textarea } from '@/components/ui/textarea';
6-
import { ChangeEvent, useCallback, useRef, useEffect, useState } from 'react';
6+
import { ChangeEvent, useCallback, useRef, useEffect, useState, KeyboardEvent } from 'react';
77
import Image from 'next/image';
88
import { useAtom, useAtomValue, useSetAtom } from 'jotai';
99
import {
@@ -81,9 +81,25 @@ export default function ChatInputBox() {
8181
value={inputValue}
8282
onChange={(e) => setInputValue(e.target.value)}
8383
placeholder="패션에 대해 마음대로 물어보세요!"
84-
onKeyDown={(event) => {
85-
if (event.key == 'Enter' && !event.shiftKey && inputValue.trim() != '') {
86-
event.preventDefault();
84+
onKeyDown={(e: KeyboardEvent<HTMLTextAreaElement>) => {
85+
const isEmpty = !inputValue.trim();
86+
const isComposing = e.nativeEvent.isComposing;
87+
88+
if (isComposing) {
89+
return;
90+
}
91+
92+
const isEnter = e.key === 'Enter' && !e.shiftKey;
93+
const ignoreOnEnter = isEnter && isEmpty;
94+
const submitOnEnter = isEnter && !isEmpty;
95+
96+
if (ignoreOnEnter) {
97+
e.preventDefault();
98+
return;
99+
}
100+
101+
if (submitOnEnter) {
102+
e.preventDefault();
87103
handleSendMessage();
88104
}
89105
}}

0 commit comments

Comments
 (0)