AIFT Design
Components

DateRangePicker

시작일과 종료일을 선택할 수 있는 날짜 범위 선택 컴포넌트입니다.

시작일과 종료일을 선택할 수 있는 날짜 범위 선택 컴포넌트입니다.

기본 사용법

'use client';import { useState } from 'react';import { DateRangePicker, DateRange } from '@aift/ui/DatePicker';export default function Preview() {  const [range, setRange] = useState<DateRange>({});  return (    <div className="max-w-md space-y-4">      <DateRangePicker range={range} onRangeChange={setRange} />    </div>  );}

Placeholder

placeholder를 통해 날짜가 선택되지 않았을 때 표시할 텍스트를 지정할 수 있습니다.

'use client';import { useState } from 'react';import { DateRangePicker, DateRange } from '@aift/ui/DatePicker';export default function Placeholder() {  const [range, setRange] = useState<DateRange>({});  return (    <div className="max-w-md space-y-4">      <DateRangePicker        range={range}        onRangeChange={setRange}        placeholder="시작일 ~ 종료일"      />      <DateRangePicker        range={range}        onRangeChange={setRange}        placeholder="기간을 선택하세요"      />    </div>  );}

Format

format을 통해 날짜 표시 형식을 지정할 수 있습니다. dayjs 포맷 문자열을 사용합니다.

'use client';import { useState } from 'react';import { DateRangePicker, DateRange } from '@aift/ui/DatePicker';export default function Format() {  const [range1, setRange1] = useState<DateRange>({    startDate: new Date(2025, 0, 11),    endDate: new Date(2025, 0, 18),  });  const [range2, setRange2] = useState<DateRange>({    startDate: new Date(2025, 0, 11),    endDate: new Date(2025, 0, 18),  });  const [range3, setRange3] = useState<DateRange>({    startDate: new Date(2025, 0, 11),    endDate: new Date(2025, 0, 18),  });  return (    <div className="max-w-md space-y-4">      <DateRangePicker        range={range1}        onRangeChange={setRange1}        format="YYYY/MM/DD"      />      <DateRangePicker        range={range2}        onRangeChange={setRange2}        format="YYYY-MM-DD"      />      <DateRangePicker        range={range3}        onRangeChange={setRange3}        format="YYYY년 MM월 DD일"      />    </div>  );}

Disabled

disabled 상태로 설정할 수 있습니다.

'use client';import { useState } from 'react';import { DateRangePicker, DateRange } from '@aift/ui/DatePicker';export default function Disabled() {  const [range, setRange] = useState<DateRange>({});  return (    <div className="max-w-md space-y-4">      <DateRangePicker range={range} onRangeChange={setRange} />      <DateRangePicker range={range} onRangeChange={setRange} disabled />    </div>  );}

Sizes

트리거 버튼의 크기와 둥근 모서리를 설정할 수 있습니다.

xsmall

small

medium

large

xlarge

'use client';import { useState } from 'react';import { DateRangePicker, DateRange } from '@aift/ui/DatePicker';export default function Sizes() {  const [rangeXsmall, setRangeXsmall] = useState<DateRange>({});  const [rangeSmall, setRangeSmall] = useState<DateRange>({});  const [rangeMedium, setRangeMedium] = useState<DateRange>({});  const [rangeLarge, setRangeLarge] = useState<DateRange>({});  const [rangeXlarge, setRangeXlarge] = useState<DateRange>({});  return (    <div className="max-w-md space-y-6">      <div>        <p className="text-sm text-neutral-60 mb-3">xsmall</p>        <DateRangePicker          size="xsmall"          range={rangeXsmall}          onRangeChange={setRangeXsmall}          placeholder="시작일 ~ 종료일"        />      </div>      <div>        <p className="text-sm text-neutral-60 mb-3">small</p>        <DateRangePicker          size="small"          range={rangeSmall}          onRangeChange={setRangeSmall}          placeholder="시작일 ~ 종료일"        />      </div>      <div>        <p className="text-sm text-neutral-60 mb-3">medium</p>        <DateRangePicker          size="medium"          range={rangeMedium}          onRangeChange={setRangeMedium}          placeholder="시작일 ~ 종료일"        />      </div>      <div>        <p className="text-sm text-neutral-60 mb-3">large</p>        <DateRangePicker          size="large"          range={rangeLarge}          onRangeChange={setRangeLarge}          placeholder="시작일 ~ 종료일"        />      </div>      <div>        <p className="text-sm text-neutral-60 mb-3">xlarge</p>        <DateRangePicker          size="xlarge"          range={rangeXlarge}          onRangeChange={setRangeXlarge}          placeholder="시작일 ~ 종료일"        />      </div>    </div>  );}

Props

PropTypeDefaultDescription
rangeDateRange-선택된 날짜 범위 ({ startDate?: Date, endDate?: Date })
onRangeChange(range: DateRange) => void-날짜 범위 변경 시 호출되는 콜백
placeholderstring'0000/00/00 ~ 0000/00/00'날짜가 선택되지 않았을 때 표시할 텍스트
formatstring'YYYY/MM/DD'날짜 표시 형식 (dayjs 포맷)
disabledbooleanfalse비활성화 여부
classNamestring-추가 CSS 클래스
size'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'extra''medium'트리거 버튼의 크기 (높이, 둥근 모서리)

On this page