useChipList

useChipList는 칩 한 줄을 측정해 어떤 칩이 maxRows 안에 들어가고 어떤 칩이 +N 개수로 접히는지 정합니다. 마크업은 갖지 않습니다. ChipList와 Field.ChipInput이 이 훅으로 만들어졌고, Field.ChipInput은 reserveWidth로 입력 자리를 확보합니다.

감싸는 목록에 listRef를 두고, 측정용 행은 measureRef에 렌더링하세요. 서버는 항상 측정 전 상태로 렌더링하므로, measured가 될 때까지 목록을 숨기세요.

designtokensaccessibilitya-very-long-tag-that-stays-putreactdensitydark modedocs

언제 쓰나요

언제: ChipList가 맞지 않아, maxRows로 제한하고 +N 개수를 보이는 칩의 마크업을 직접 만들 때. 보이는/숨긴 칩 구분은 useChipList가 하고, 목록과 줄 제한 CSS, 포커스 처리는 직접 만듭니다.

쓰지 않을 때: 적용된 필터, 읽기 전용 태그, 수신자 → ChipList. 새 칩 입력 → Field.ChipInput(이미 이 훅으로 만들어져 있습니다). 옵션에서 고르기 → Combobox 레시피. 선택하거나 토글하는 칩 → Checkbox / Button.Root. 칩 하나 → Chip.Root. 칩 추가/제거 상태 → useChipField.

Props

useChipList props
이름타입필수기본값설명
chipsreadonly string[]예—순서대로 나열한 칩 레이블. visible은 항상 앞부분입니다.
maxRowsnumber아니요—들어가지 않는 칩을 +N으로 접습니다. 설정하지 않으면 모든 칩을 보여 줍니다.
reserveWidthRefObject<HTMLElement | null>아니요—계산된 min-width만큼 마지막 줄에서 비워 둘 요소. 밀도가 바뀌어도 최신 값을 유지하도록 ref로 받습니다.