Skip to Content
ComponentsCalsToolbarList

ToolbarList

Collapsible 헤더(제목 + 도구 모음) 와 데이터 리스트(인라인 편집 + 페이지네이션/무한스크롤 포함)를 결합한 복합 컴포넌트입니다. 선택적으로 검색 폼 영역을 리스트 상단에 배치할 수 있습니다.


기본 사용

import { ToolbarList, TableColumn } from "@vortex/ui-cals" function ProductList() { return ( <ToolbarList title="상품 목록" actions={<button>조회</button>} getRowId={(row) => row.id} data={data} pageSize={10} manualPagination={false} > <TableColumn field="id" title="ID" width={80} /> <TableColumn field="name" title="상품명" sortable /> <TableColumn field="category" title="카테고리" /> <TableColumn field="price" title="가격" /> </ToolbarList> ) }

인라인 편집

inlineEdit={true}showAdd, showEdit, showDelete, showSave props로 인라인 편집 도구모음을 활성화합니다.

<ToolbarList title="편집 가능 목록" inlineEdit showAdd showEdit showDelete showSave addMode={addMode} editMode={editMode} deleteMode={deleteMode} onAdd={() => setAddMode(true)} onEdit={() => setEditMode(true)} onDeleteMode={() => setDeleteMode(true)} onCancel={handleCancel} onSave={handleSave} onDelete={handleDelete} getRowId={(row) => row.id} data={data} > <TableColumn field="id" title="ID" /> <TableColumn field="name" title="상품명" /> </ToolbarList>

무한 스크롤

infiniteScroll={true}이면 페이지네이션 대신 스크롤 시 다음 데이터를 자동 로드합니다.

<ToolbarList title="무한 스크롤" infiniteScroll height={400} onLoadMore={loadNextPage} getRowId={(row) => row.id} data={data} > ... </ToolbarList>

검색 폼

searchContent prop으로 헤더와 리스트 사이에 검색 입력 격자를 추가합니다.

<ToolbarList title="검색 + 리스트" searchContent={ <> <ToolbarList.Col span={8}> <Input label="상품명" /> </ToolbarList.Col> <ToolbarList.Col span={8}> <Select label="카테고리" /> </ToolbarList.Col> </> } getRowId={(row) => row.id} data={data} > ... </ToolbarList>

Props

ToolbarList 고유 Props

PropTypeDefault설명
titleReactNode-헤더 제목
actionsReactNode-도구 모음 버튼
visiblebooleantruefalse이면 비렌더링
defaultCollapsedbooleanfalse초기 접힘 상태
collapseDisabledbooleanfalse접기 잠금 (항상 펼침)
toolbarPosition'top' | 'bottom''top'도구 모음 위치
showPageTotalbooleanfalse전체 건수 표시
searchContentReactNode-검색 폼 영역 콘텐츠
columnsnumber24검색 폼 격자 컬럼 수
colGapnumber15검색 폼 가로 간격 (px)
rowGapnumber20검색 폼 세로 간격 (px)
readOnlybooleanfalse검색 폼 + 인라인 편집 읽기 전용
showLabelbooleantrue레이블 표시 여부
labelPositionLabelPosition'left'레이블 위치
backgroundColorstring-wrapper + 헤더 + List 배경색
colorstring-헤더 글자색
borderWidthstring-헤더 테두리 두께
borderColorstring-헤더 테두리 색상
fullSizebooleanfalse전체 화면 확장

인라인 편집 Props

PropTypeDefault설명
inlineEditbooleanfalse인라인 편집 도구모음 표시
showAddbooleanfalse추가 버튼 표시
showEditbooleanfalse수정 버튼 표시
showDeletebooleanfalse삭제 버튼 표시
showSavebooleanfalse저장 버튼 표시
addModebooleanfalse추가 모드 활성
editModebooleanfalse수정 모드 활성
deleteModebooleanfalse삭제 모드 활성
onAdd() => void-추가 버튼 클릭
onEdit() => void-수정 버튼 클릭
onDeleteMode() => void-삭제 모드 진입
onDelete() => void-삭제 실행
onSave() => void-저장 실행
onCancel() => void-편집 취소

무한 스크롤 Props

PropTypeDefault설명
infiniteScrollbooleanfalse무한 스크롤 활성화
onLoadMore() => void-스크롤 끝 도달 시 콜백
infiniteScrollDisabledbooleanfalse추가 로딩 일시 중단

List/Grid 패스스루 Props

Grid 및 List 컴포넌트의 모든 props를 직접 전달합니다. 자세한 내용은 Grid 문서List 문서를 참조하세요.

ToolbarList.Col

검색 폼 격자 안에 컨트롤을 배치하는 열 컴포넌트입니다.

PropTypeDefault설명
spannumber24차지할 컬럼 수
offsetnumber0시작 전 건너뛸 컬럼
hiddenbooleanfalse숨김 처리

ToolbarGrid와의 차이점

기능ToolbarGridToolbarList
내부 컴포넌트Grid (읽기 전용)List (Grid + InlineEdit + InfiniteScroll)
인라인 편집
무한 스크롤
합계 행✅ (showSummary)
readOnly 범위검색 폼만검색 폼 + 인라인 편집

접근성

  • Collapsible trigger에 aria-expanded 자동 노출
  • collapseDisabledaria-disabled 설정
  • 검색 폼 영역에 role="search" 적용
  • readOnly 시 검색 폼에 aria-readonly 설정
Last updated on