Frontend — 컴포넌트 (메인) - xxriny/KNU-PROJECT GitHub Wiki

1. src/components/Sidebar.jsx

라인 코드 설명
1–21 import lucide 아이콘, useAppStore
22–146 Sidebar 컴포넌트 프로젝트 로고·타이틀, API 키 입력, 모델 선택 드롭다운(gemini-2.5-flash/pro 등), 폴더 선택, 파일 트리 렌더
148 FileTreeNode 재귀 트리 컴포넌트 — 폴더 펼침/접기
158 FileTreeItem 단일 파일 항목 — 클릭 → openProjectFile()

2. src/components/HomeScreen.jsx

라인 코드 설명
1–38 import + 상수 아이콘, useAppStore, 모드 카드 정의
39–161 HomeScreen Create/Update/Reverse 3가지 모드 카드 UI, 프로젝트 설명 textarea, 실행 버튼 → startAnalysis()

3. src/components/ChatPanel.jsx

라인 코드 설명
1–11 import 아이콘, useAppStore
12–131 ChatPanel Chat/Apply 토글, 메시지 히스토리(사용자 파란/어시스턴트 회색 말풍선), 자동 스크롤, 텍스트 입력 + 전송 → sendIdeaChat()
133–164 ChatMessage 개별 메시지 렌더링 서브 컴포넌트

4. src/components/Workspace.jsx

라인 코드 설명
1–32 import + 상수 탭 컴포넌트들, useAppStore, 탭 ID 정의
33–233 Workspace 2-tier 탭(상단: 코드 파일 탭, 하단: 출력 탭), PM/SA 드롭다운 메뉴, activeTabId 기반 뷰포트 라우팅, 파이프라인 진행 상태에 따라 HomeScreen/PipelineProgress/결과 뷰 전환

5. src/components/PipelineProgress.jsx

라인 코드 설명
1–19 import + 상수 아이콘, useAppStore
20–66 파이프라인 단계 정의 CREATE 11단계, UPDATE 14단계, REVERSE 9단계, analysis(PM only) 5단계, revision 1단계, idea_chat 1단계
67–138 PipelineProgress 진행 표시(대기/진행중/완료/에러 아이콘+라벨), Thinking 로그 실시간 스트림
139–169 StepItem 개별 단계 렌더링 서브 컴포넌트

6. src/components/ResultViewer.jsx

라인 코드 설명
1–32 import 12개 서브 탭 컴포넌트
33–38 ResultViewer tabId 기반 탭 라우터 — Overview/RTM/Context/Topology/SA* 탭 분기

7. src/components/StatusBar.jsx

라인 코드 설명
1–9 import useAppStore
10–71 StatusBar WS 연결 , 파이프라인 상태, 모델명, 백엔드 포트

8. src/components/CodeViewer.jsx

라인 코드 설명
1–10 import @monaco-editor/react, useAppStore
11–57 CodeViewer Monaco 에디터 래퍼, 언어 자동 감지(확장자 기반), 다크 테마, 편집 가능(readOnly: false), onChangeupdateOpenFileContent()

9. src/components/SessionPanel.jsx

라인 코드 설명
1–4 import useAppStore, 아이콘
5–62 SessionPanel 세션 목록 렌더링(타임스탬프·이름), loadSession(), deleteSession() 버튼