Skip to Content

List

Grid와 InlineEditToolbar를 조합한 데이터 목록 컴포넌트입니다.


개요

List 컴포넌트는 Grid(테이블 렌더링, 페이지네이션, 정렬, 선택)와 InlineEditToolbar(추가/수정/삭제/저장/취소)를 하나로 조합하여, 데이터 목록 조회 + 인라인 편집 워크플로우를 제공합니다.

주요 특징

  • Grid 기반: TableColumn 선언적 열 정의, 페이지네이션, 정렬, 행 선택
  • InlineEditToolbar 통합: 추가/수정/삭제/저장/취소 콜백 연결
  • 읽기 전용: readOnly prop으로 편집 버튼 비활성화
  • 무한 스크롤: infiniteScroll prop으로 pagination 대신 스크롤 로딩
  • 줄무늬/행번호: striped, showRowNumber prop
  • 디자인 토큰: Foundation 토큰 시스템 호환

기본 사용

<List>datagetRowId를 전달하고, <TableColumn>으로 열을 정의합니다.

ID
상품명
카테고리
가격
P001
상품 1
전자기기
73099
P002
상품 2
의류
55295
P003
상품 3
식품
34732
P004
상품 4
가구
67252
P005
상품 5
전자기기
47327
P006
상품 6
의류
12906
P007
상품 7
식품
34875
P008
상품 8
가구
26474
P009
상품 9
전자기기
65553
P010
상품 10
의류
86000
P011
상품 11
식품
46353
P012
상품 12
가구
93997
P013
상품 13
전자기기
85266
P014
상품 14
의류
87858
P015
상품 15
식품
28080
P016
상품 16
가구
4665
P017
상품 17
전자기기
33296
P018
상품 18
의류
24778
P019
상품 19
식품
5483
P020
상품 20
가구
9040
20

행 선택

selectableselectionMode로 체크박스(다중) 또는 라디오(단일) 선택을 활성화합니다.

선택됨: 없음

ID
상품명
카테고리
P001
상품 1
전자기기
P002
상품 2
의류
P003
상품 3
식품
P004
상품 4
가구
P005
상품 5
전자기기
P006
상품 6
의류
P007
상품 7
식품
P008
상품 8
가구
P009
상품 9
전자기기
P010
상품 10
의류
10

인라인 편집

inlineEdit를 활성화하면 List 상단에 InlineEditToolbar가 표시됩니다. 추가/수정/삭제/저장/취소 콜백을 연결하여 편집 워크플로우를 구성합니다.

ID
상품명
카테고리
P001
상품 1
전자기기
P002
상품 2
의류
P003
상품 3
식품
P004
상품 4
가구
P005
상품 5
전자기기
5

줄무늬 + 행 번호

ID
상품명
카테고리
1
P001
상품 1
전자기기
2
P002
상품 2
의류
3
P003
상품 3
식품
4
P004
상품 4
가구
5
P005
상품 5
전자기기
6
P006
상품 6
의류
7
P007
상품 7
식품
8
P008
상품 8
가구
9
P009
상품 9
전자기기
10
P010
상품 10
의류
10

API Reference

Props

Grid 전달 Props

PropTypeDefault설명
dataT[][]데이터 배열
getRowId(row: T) => string-행 고유 ID 추출 함수 (필수)
childrenReactNode-<TableColumn> 자식 컴포넌트들
loadingbooleanfalse로딩 상태
heightnumber | string-그리드 높이
selectablebooleanfalse행 선택 활성화
selectionMode"checkbox" | "radio""checkbox"선택 방식
selectedRowsstring[]-선택된 행 ID 배열
paginationbooleantrue페이지네이션 표시
pageIndexnumber0현재 페이지 (0-based)
pageSizenumber20페이지당 행 수
pageSizeOptionsnumber[][10,20,50,100]페이지 크기 선택 목록
showRowNumberbooleanfalse행 번호 열 표시
stripedbooleanfalse줄무늬 행
fullSizebooleanfalse화면 가득 채움
enableColumnResizebooleantrue열 너비 조절
backgroundColorstring-배경색

List 고유 Props

PropTypeDefault설명
readOnlybooleanfalse읽기 전용
infiniteScrollbooleanfalse무한 스크롤 모드
showSummarybooleanfalse합계 행 표시

InlineEditToolbar Props

PropTypeDefault설명
inlineEditbooleanfalse편집 도구모음 활성화
showAddbooleanfalse추가 버튼
showEditbooleanfalse수정 버튼
showDeletebooleanfalse삭제 버튼
showSavebooleanfalse저장 버튼
addModebooleanfalse추가 모드 상태
editModebooleanfalse수정 모드 상태
deleteModebooleanfalse삭제 모드 상태

Events

EventType설명
onRowClick(row: T, index: number) => void행 클릭
onRowDoubleClick(row: T, index: number) => void행 더블클릭
onSelectionChange(ids: string[], rows: T[]) => void선택 변경
onPageChange(pageIndex: number) => void페이지 변경
onSortChange(sorting: SortingState) => void정렬 변경
onLoadMore() => void무한 스크롤 추가 로드
onAdd() => void추가 클릭
onEdit() => void수정 클릭
onDelete() => void삭제 실행
onSave() => void저장 클릭
onCancel() => void취소 클릭

접근성

  • 테이블은 시맨틱 <table> 요소를 사용합니다
  • 로딩 상태는 aria-busy="true"로 전달됩니다
  • 정렬 방향은 aria-sort 속성으로 전달됩니다
  • InlineEditToolbar는 role="toolbar"를 사용합니다
  • 행 선택 체크박스/라디오는 키보드(Space)로 토글할 수 있습니다

관련 컴포넌트

  • Grid - List 내부에서 사용하는 데이터 그리드
  • InlineEditToolbar - List 내부에서 사용하는 편집 도구모음
  • TableColumn - 열 정의 컴포넌트
Last updated on