From bd6ae894a1b8b529a6af6ec1d02a25f496d852e0 Mon Sep 17 00:00:00 2001 From: sunhwaaRj Date: Sat, 8 Nov 2025 04:09:06 +0900 Subject: [PATCH 01/13] =?UTF-8?q?#4=20[FEAT]=20=EC=B1=84=ED=8C=85=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/chat/ChatPageTest.tsx | 91 +++++++++++++++++---------------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/src/pages/chat/ChatPageTest.tsx b/src/pages/chat/ChatPageTest.tsx index bbf5414..61cddd2 100644 --- a/src/pages/chat/ChatPageTest.tsx +++ b/src/pages/chat/ChatPageTest.tsx @@ -1,4 +1,5 @@ import { useEffect, useRef, useState } from 'react'; +import Navigation from '../../components/Navigation'; export default function ChatPageTest() { const [output, setOutput] = useState(''); @@ -6,6 +7,7 @@ export default function ChatPageTest() { const [sessionId, setSessionId] = useState(null); const socketRef = useRef(null); const outputRef = useRef(null); + const inputRef = useRef(null); const mountedRef = useRef(false); @@ -18,11 +20,9 @@ export default function ChatPageTest() { socket.onopen = () => { console.log('Connected'); - setOutput((prev) => prev + 'Connected\n'); }; socket.onmessage = (event) => { - // bedrock stream done 메시지는 콘솔에만 표시 if (event.data.includes('[bedrock stream done]')) { console.log('Stream done:', event.data); return; @@ -32,7 +32,7 @@ export default function ChatPageTest() { const json = JSON.parse(event.data); if (json.type === 'session') { setSessionId(json.session_id); - setOutput((prev) => prev + `[세션 ID: ${json.session_id}]\n`); + console.log(`${sessionId}`); return; } } catch { @@ -63,6 +63,14 @@ export default function ChatPageTest() { } }, [output]); + // 입력창 자동 높이 조절 + useEffect(() => { + if (inputRef.current) { + inputRef.current.style.height = 'auto'; + inputRef.current.style.height = inputRef.current.scrollHeight + 'px'; + } + }, [input]); + const sendMessage = () => { const text = input.trim(); if (!text || !socketRef.current) return; @@ -75,58 +83,51 @@ export default function ChatPageTest() { } }; - const handleKeyPress = (e: React.KeyboardEvent) => { - if (e.key === 'Enter') { + const handleKeyPress = (e: React.KeyboardEvent) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); sendMessage(); } }; return ( -
-

Chat Test

- {sessionId &&

세션 ID: {sessionId}

} -