File size: 1,230 Bytes
06c3755
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 三栏壳(deepseek 信息架构):Sidebar(会话导航)/ Conversation(Chat/Trajectory
// 双视图)/ Details(inspector + artifact + memory + 日志)。窄屏 Details 隐藏。

import type { SessionInfo } from '../../api/contract'
import type { AppActions } from '../../App'
import Sidebar from './Sidebar'
import ConversationPane from './ConversationPane'
import DetailsPane from './DetailsPane'

type Props = {
  connStatus: 'connecting' | 'open' | 'closed'
  actions: AppActions
  sessionList: SessionInfo[]
  activeSessionId: string | null
}

export default function ThreeColumnLayout({ connStatus, actions, sessionList, activeSessionId }: Props) {
  return (
    <div className="h-full flex min-h-0">
      <Sidebar
        connStatus={connStatus}
        actions={actions}
        sessionList={sessionList}
        activeSessionId={activeSessionId}
      />
      <ConversationPane actions={actions} activeSessionId={activeSessionId} />
      <div
        className="w-[400px] shrink-0 border-l min-h-0 hidden xl:flex flex-col"
        style={{ borderColor: 'var(--border)', background: 'var(--bg-panel)' }}
      >
        <DetailsPane activeSessionId={activeSessionId} />
      </div>
    </div>
  )
}