43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
# Codex Diff Previewer
|
|
|
|
## 목적
|
|
|
|
변경 파일의 전체 소스와 raw diff를 codex 스타일 아코디언으로 함께 보여주는 공통 preview 컴포넌트입니다.
|
|
|
|
## 공통 설계 원칙
|
|
|
|
- 샘플(`samples`)을 제외한 컴포넌트에는 API 호출이나 화면 전용 로직을 직접 넣지 않습니다.
|
|
- 컴포넌트는 최대한 멍청하게 설계하고, 직관적인 props를 받아 직관적인 UI 동작만 수행합니다.
|
|
- 기능 처리와 비즈니스 로직은 `src/features` 또는 해당 화면 전용 패키지 레벨에서 담당합니다.
|
|
- 공통 컴포넌트는 여러 곳에서 재사용되므로, 수정 시에는 기존 동작을 바꾸지 않는 범위에서만 보완합니다.
|
|
|
|
## 폴더 구조
|
|
|
|
```text
|
|
src/components/previewer
|
|
├─ CodexDiffBlock.tsx
|
|
├─ CodexDiffPreviewer.tsx
|
|
├─ CodexDiffPreviewer.css
|
|
├─ samples/
|
|
│ └─ CodexDiffSample.tsx
|
|
└─ index.ts
|
|
```
|
|
|
|
## 주요 props
|
|
|
|
- `files`
|
|
- `diffText`
|
|
- `title`
|
|
- `description`
|
|
- `height`
|
|
|
|
## 공통 사용처
|
|
|
|
- 작업일지 `## 소스` 탭
|
|
- 일반 문서의 ````diff```` 코드 블록
|
|
- previewer 샘플 갤러리
|
|
|
|
## 샘플
|
|
|
|
- 대표 샘플: `src/components/previewer/samples/CodexDiffSample.tsx`
|