TreeView
폴더 구조나 카테고리 계층을 표시하는 트리 뷰 컴포넌트입니다. 파일 탐색기, 사이드바 네비게이션, 조직도 등에 활용할 수 있습니다.
설치
Terminal
npx @msub-core/ui-cli add tree-view
사용법
TSX
import { TreeView } from "@msub-core/ui/components/tree-view"
function MyComponent() {
const data = [
{
id: "1",
label: "폴더 1",
children: [
{ id: "1-1", label: "파일 1", isLeaf: true },
{ id: "1-2", label: "파일 2", isLeaf: true },
],
},
]
return (
<TreeView
data={data}
selectionMode="single"
/>
)
}기본
문서
사진
비디오
| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
| data | TreeNodeData[] | - | No | 트리 데이터 배열 |
| selectionMode | "single" | "multi" | "none" | "single" | No | 선택 모드 |
| selectedIds | string[] | - | No | 선택된 노드 ID (controlled) |
| defaultSelectedIds | string[] | [] | No | 기본 선택된 노드 ID (uncontrolled) |
| expandedIds | string[] | - | No | 확장된 노드 ID (controlled) |
| defaultExpandedIds | string[] | [] | No | 기본 확장된 노드 ID (uncontrolled) |
| onSelectChange | (ids: string[]) => void | - | No | 선택 변경 핸들러 |
| onExpandChange | (ids: string[]) => void | - | No | 확장 변경 핸들러 |
| showCheckbox | boolean | false | No | 체크박스 표시 여부 |
| variant | "default" | "outline" | "ghost" | "default" | No | 스타일 변형 |
| size | "sm" | "default" | "lg" | "default" | No | 크기 |
| showIndentGuides | boolean | false | No | 들여쓰기 가이드 라인 표시 |
| enableDragDrop | boolean | false | No | 드래그 앤 드롭 활성화 |
| onNodeDrop | (draggedId: string, targetId: string) => void | - | No | 노드 드롭 핸들러 |
| onLoadChildren | (nodeId: string) => Promise<TreeNodeData[]> | - | No | 비동기 자식 로드 핸들러 |
| filter | (node: TreeNodeData) => boolean | - | No | 필터 함수 (검색 기능) |
크기
sm
문서
사진
비디오
default
문서
사진
비디오
lg
문서
사진
비디오
변형
default
문서
사진
비디오
outline
문서
사진
비디오
ghost
문서
사진
비디오
선택 모드
선택 없음 (none)
문서
사진
비디오
단일 선택 (single)
문서
사진
비디오
다중 선택 (multi)
문서
사진
비디오
선택된 항목: 2-1, 2-2-1
체크박스
문서
사진
비디오
선택된 항목: 2-1, 2-2-1
인덴트 가이드
문서
사진
비디오
들여쓰기 가이드 라인이 표시되어 계층 구조를 더 쉽게 파악할 수 있습니다.
커스텀 아이콘
이미지
비디오
음악
비동기 로딩
루트 폴더
문서
폴더를 펼치면 서버에서 하위 항목을 비동기로 로드합니다.
드래그 앤 드롭
project
노드를 드래그하여 다른 위치로 이동할 수 있습니다. (콘솔에서 로그 확인)
검색/필터
검색어를 입력하면 일치하는 항목만 표시됩니다.
문서
사진
비디오
파일 탐색기 예제
VSCode 스타일의 파일 탐색기 예제입니다. 폴더를 클릭하여 열고 닫을 수 있으며, 파일 아이콘과 계층 구조를 시각화합니다.
EXPLORER
project
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
main
0 문제
Ln 52, Col 1UTF-8
TypeScript
카테고리 트리 예제
전자제품
패션
전자상거래 사이트의 상품 카테고리 선택에 활용할 수 있습니다.