diff --git a/src/components/ChatRoom.jsx b/src/components/ChatRoom.jsx index 90eb827..d6b82b1 100644 --- a/src/components/ChatRoom.jsx +++ b/src/components/ChatRoom.jsx @@ -176,6 +176,7 @@ const ChatRoom = ({ roomId: propRoomId, onLeaveRoom, refreshRooms }) => { userId: userData.id, username: userData.username, nickname: userData.nickname || userData.username, + avatarUrl: userData.avatarUrl, // 프로필 이미지 URL 추가 message: messageText, sendAt: new Date().toISOString() }; @@ -347,6 +348,7 @@ const ChatRoom = ({ roomId: propRoomId, onLeaveRoom, refreshRooms }) => { chatMsgId: message.id || Date.now(), userId: parseInt(message.userId), nickname: message.nickname || message.from || '알 수 없는 사용자', + avatarUrl: message.avatarUrl, // avatarUrl 추가 message: message.message, sendAt: message.sendAt || new Date().toISOString() }; @@ -637,7 +639,15 @@ const ChatRoom = ({ roomId: propRoomId, onLeaveRoom, refreshRooms }) => { className={`message ${msg.userId === userInfo.id ? 'sent' : 'received'} ${msg.failed ? 'failed' : ''}`} >
- {/* 실제 사용자 아바타가 있으면 추가 */} + {msg.avatarUrl ? ( + {msg.nickname} + ) : ( + + )}
{msg.nickname}
diff --git a/src/components/ChatStyles.css b/src/components/ChatStyles.css index 66cd721..c05e4f9 100644 --- a/src/components/ChatStyles.css +++ b/src/components/ChatStyles.css @@ -603,6 +603,17 @@ overflow: hidden; } +.message .avatar img.user-avatar { + width: 100%; + height: 100%; + object-fit: cover; +} + +.message .avatar i.fa-user { + font-size: 20px; + color: #fff; +} + .message.sent .avatar { display: none; } diff --git a/src/services/WebSocketService.js b/src/services/WebSocketService.js index c2e270c..6e0dba7 100644 --- a/src/services/WebSocketService.js +++ b/src/services/WebSocketService.js @@ -342,6 +342,7 @@ class WebSocketService { userId: parseInt(userData.id), // userId를 숫자로 변환 nickname: userData.username, from: userData.username, + avatarUrl: userData.avatarUrl, // 사용자 아바타 URL 추가 message: message, sendAt: new Date().toISOString(), isLocalMessage: true // 로컬에서 보낸 메시지 표시