Skip to Content
ComponentsCalsDateTimePicker

DateTimePicker

날짜와 시간을 함께 선택하는 CALS 컨트롤입니다. Foundation의 DatePicker (showTime=true)를 기반으로 하며, DatePicker와 동일한 스타일 오버라이드와 FormItem 래핑을 지원합니다.

개요

DateTimePicker는 원본 Vue vQSDateTimePicker 컴포넌트에 대응합니다. DatePicker가 날짜만 선택하는 데 반해, DateTimePicker는 캘린더 팝업 하단에 시간(시/분/초) 선택 영역이 함께 표시됩니다.

주요 특징

  • 날짜 + 시간 동시 선택 (팝업 내 시간 선택 영역)
  • 제어/비제어 컴포넌트 패턴 지원
  • FormItem 래핑 (label, required, orientation, error)
  • 오늘 기준 날짜 비활성화 (inactiveMode)
  • 커스텀 날짜 비활성화 (disabledDate)
  • 빠른 선택 단축 버튼 (shortcuts)
  • 스타일 오버라이드 (토큰 CSS 변수)
  • 접근성 (aria-invalid, disabled)

사용 예시

기본 사용

import { DateTimePicker } from "@vortex/ui-cals" <DateTimePicker placeholder="날짜/시간을 선택하세요" />

제어 컴포넌트

const [value, setValue] = useState<Date | undefined>() <DateTimePicker value={value} onChange={setValue} placeholder="날짜/시간 선택" />

레이블 + 필수

<DateTimePicker label="예약 일시" required />

수평 레이아웃

<DateTimePicker label="시작 일시" orientation="horizontal" />

비활성 상태

<DateTimePicker disabled placeholder="비활성" />

과거 날짜 비활성화

<DateTimePicker inactiveMode="lt" placeholder="오늘 이후만 선택" />

빠른 선택

<DateTimePicker shortcuts={[{ label: "현재 시각", value: new Date() }]} />

오류 상태

<DateTimePicker label="예약 일시" required error="필수 항목입니다" />

스타일 오버라이드

<DateTimePicker backgroundColor="#f0fdf4" borderColor="#16a34a" color="#15803d" />

API 레퍼런스

Props

PropTypeDefaultDescription
valueDate-선택된 날짜+시간 값
defaultValueDate-초기 기본값
onChange(value: Date | undefined) => void-값 변경 콜백
placeholderstring-안내 텍스트
showPlaceholderbooleantrueplaceholder 표시 여부
size"xs"|"sm"|"md"|"lg"|"xl""md"크기
visiblebooleantrue표시 여부
disabledbooleanfalse비활성화
readOnlybooleanfalse읽기 전용
clearablebooleantrue클리어 버튼 표시
widthstring | number"100%"너비
disabledDate(date: Date) => boolean-날짜 비활성화 함수
inactiveMode"lt"|"lte"|"gt"|"gte"|"none""none"오늘 기준 비활성화
isSearchbooleanfalse검색 폼 모드
onSearch() => void-Enter 시 검색 콜백
shortcutsDateTimePickerShortcut[]-빠른 선택 단축 목록
labelReactNode-FormItem 레이블
showLabelbooleanfalse빈 레이블 공간 표시
labelTooltipstring-레이블 도움말
orientation"horizontal"|"vertical"-레이블 위치
requiredbooleanfalse필수 입력 표시
errorReactNode-오류 메시지
backgroundColorstring-배경색
colorstring-텍스트 색상
borderColorstring-테두리 색상
borderWidthstring-테두리 두께
fontSizestring-폰트 크기
fontWeightstring | number-폰트 굵기
fontFamilystring-폰트 패밀리
fontStylestring-폰트 스타일
textAlignstring-텍스트 정렬
classNamestring-컨테이너 className
formClassNamestring-FormItem 래퍼 className
titlestring-HTML title 속성

Ref

Property/MethodTypeDescription
focus()() => void입력에 포커스
blur()() => void포커스 해제
elementHTMLElement | null컨테이너 DOM 요소

DateTimePickerShortcut

PropertyTypeDescription
labelstring표시 텍스트
valueDate클릭 시 적용할 값

접근성

  • aria-invalid — error prop 존재 시 자동 설정
  • disabled — disabled/readOnly 시 비활성 속성 적용
  • 키보드 — Enter 키로 검색 모드 트리거 지원

관련 컴포넌트

Last updated on