Skip to Content

LookUp

읽기 전용 입력 필드와 검색 버튼으로 구성된 조회 컨트롤


개요

Cals LookUp은 원본 Vue QSLookUp 컴포넌트를 React로 재구현한 것으로, 입력 필드에 직접 타이핑할 수 없고 검색 버튼 클릭을 통해 외부에서 값을 설정하는 패턴의 컨트롤입니다.

주요 특징

  • 읽기 전용 입력: 입력 필드는 항상 disabled, 값은 외부에서 설정
  • 검색 버튼: 클릭 시 onClick 핸들러 호출
  • FormItem 래핑: label, required, error 등 폼 레이블 지원
  • 커스텀 스타일: 배경색, 텍스트 색상, 테두리 등 스타일 오버라이드
  • 가시성 제어: visible prop으로 선언적 표시/숨김
  • 레이블 도움말: labelTooltip으로 도움말 아이콘 표시

기본 사용

value prop으로 표시할 값을 지정하고, onClick으로 검색 동작을 정의합니다.


비활성화 (disabled)

disabled=true이면 검색 버튼이 비활성화됩니다.


Placeholder

빈 상태에서 안내 텍스트를 표시합니다. showPlaceholder=false로 숨길 수 있습니다.


FormItem 래핑

label, required, error 등 FormItem props를 지원합니다.


레이블 도움말 (labelTooltip)

레이블 옆에 도움말 아이콘을 표시합니다.


크기 (size)

size prop으로 InputGroup 크기를 변경합니다.


커스텀 스타일

backgroundColor, color, borderColor 등의 prop으로 스타일을 지정합니다.


가시성 제어 (visible)

visible prop으로 선언적으로 표시/숨김을 제어합니다.


API Reference

Props

PropTypeDefaultDescription
valuestring""입력 필드에 표시할 값
placeholderstring-빈 상태 안내 텍스트
showPlaceholderbooleantrueplaceholder 표시 여부
size"xs" | "sm" | "md" | "lg" | "xl""md"InputGroup 크기
visiblebooleantrue표시 여부 (false면 DOM 제거)
disabledboolean-검색 버튼 비활성화 (입력 필드는 항상 disabled)
requiredboolean-FormItem 필수 표시
showLabelbooleanfalse빈 레이블 공간 표시
labelTooltipstring-레이블 도움말 (아이콘 hover 시 Tooltip)
titlestring-HTML title 속성 (native tooltip)
onClick() => void-검색 버튼 클릭 핸들러
backgroundColorstring-배경색 오버라이드
colorstring-텍스트 색상 오버라이드
borderColorstring-테두리 색상 오버라이드
borderWidthstring-테두리 두께
fontSizestring-폰트 크기
fontWeightstring | number-폰트 굵기
fontFamilystring-폰트 패밀리
fontStylestring-폰트 스타일 (italic 등)
textAlignstring-텍스트 정렬
classNamestring-컨테이너 CSS 클래스
formClassNamestring-FormItem 래퍼 CSS 클래스
styleCSSProperties-인라인 스타일
FormItem propsOmit<FormItemProps, "className" | "children">-label, labelWidth, orientation, error 등

Ref

Method/PropertyTypeDescription
focus()() => void내부 요소에 포커스 이동
blur()() => void내부 요소 포커스 해제
elementHTMLElement | nullLookup DOM 요소

접근성

권장 사항

  • ✅ 검색 버튼에 aria-label="검색"이 자동 설정됨
  • ✅ InputGroup이 role="group"을 가짐 (Foundation 보증)
  • ✅ FormItem label과 컨트롤이 올바르게 연결됨
  • ❌ 중요 정보를 color만으로 전달하지 않기 (색맹 고려)

관련 컴포넌트

  • Input: 직접 입력 가능한 텍스트 입력 컴포넌트
  • Select: 드롭다운 선택 컴포넌트
Last updated on