feat(09-02): integrate JKChatComposer into chat window

- Added JKChatComposer import and component
- Updated layout with flex container for proper spacing
- Header fixed at top, message list scrollable in middle, composer at bottom
- Complete three-section window structure (header/list/composer)
This commit is contained in:
Nuwan 2026-01-27 19:47:20 +05:30
parent 538cdd0239
commit b558bfe0c3
1 changed files with 11 additions and 4 deletions

View File

@ -3,6 +3,7 @@ import { useSelector, useDispatch } from 'react-redux';
import WindowPortal from '../common/WindowPortal.js';
import JKChatHeader from './chat/JKChatHeader.js';
import JKChatMessageList from './chat/JKChatMessageList.js';
import JKChatComposer from './chat/JKChatComposer.js';
import {
selectIsChatWindowOpen,
selectActiveChannel,
@ -21,9 +22,12 @@ import {
* - closeChatWindow: Action to close window
*
* Component hierarchy:
* WindowPortal JKChatHeader + JKChatMessageList
* WindowPortal JKChatHeader + JKChatMessageList + JKChatComposer
*
* Note: Message composition implementation deferred to Plan 9
* Layout:
* - Header: Fixed at top (~50px)
* - Message List: Scrollable, fills middle space
* - Composer: Fixed at bottom (~120px)
*/
const JKSessionChatWindow = () => {
const dispatch = useDispatch();
@ -56,12 +60,15 @@ const JKSessionChatWindow = () => {
onClose={handleClose}
windowId="jamkazam-chat"
>
<div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
<div style={{ display: 'flex', flexDirection: 'column', height: '100%', width: '100%' }}>
<JKChatHeader
channelName={getChannelName()}
onClose={handleClose}
/>
<JKChatMessageList />
<div style={{ flex: 1, overflowY: 'auto' }}>
<JKChatMessageList />
</div>
<JKChatComposer />
</div>
</WindowPortal>
);