DatePicker

Inline date, multiple dates and dates range picker.

Import

import { DatePicker } from '@tidbcloud/uikit'

Usage

import { useState } from 'react'
import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  const [value, setValue] = useState<Date | null>(null)
  return <DatePicker value={value} onChange={setValue} />
}

Allow deselect

Set allowDeselect to allow user to deselect current selected date by clicking on it:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker allowDeselect />
}

Multiple dates

Set type="multiple" to allow user to pick multiple dates:

import { useState } from 'react'
import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  const [value, setValue] = useState<Date[]>([])
  return <DatePicker type="multiple" value={value} onChange={setValue} />
}

Dates range

Set type="range" to allow user to pick dates range:

import { useState } from 'react'
import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  const [value, setValue] = useState<[Date | null, Date | null]>([null, null])
  return <DatePicker type="range" value={value} onChange={setValue} />
}

Min and max date

Set minDate and maxDate props to define allowed date range:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker minDate={new Date(2022, 1, 10)} maxDate={new Date(2022, 1, 25)} />
}

Hide outside dates

Set hideOutsideDates prop to remove all dates that do not belong to the current month:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker hideOutsideDates />
}

Display week numbers

Set withWeekNumbers prop to display week numbers:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker withWeekNumbers />
}

First day of week

Set firstDayOfWeek prop (0-6, where 0 is Sunday):

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker firstDayOfWeek={0} /> // Sunday
}

Number of columns

Set numberOfColumns prop to display multiple months:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker numberOfColumns={2} />
}

Default level

Set defaultLevel prop to configure initial display level:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatePicker defaultLevel="decade" />
}

Exclude dates

Use excludeDate prop to disable specific dates:

import { DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  // Disable all dates except Fridays
  return <DatePicker excludeDate={(date) => date.getDay() !== 5} />
}

Props

PropTypeDefaultDescription
type’default’ | ‘multiple’ | ‘range''default’Picker type
valueDateValue-Controlled value
defaultValueDateValue-Default value
onChange(value: DateValue) => void-Called when value changes
allowDeselectbooleanfalseAllow deselecting date
allowSingleDateInRangebooleanfalseAllow single date as range
numberOfColumnsnumber1Number of columns
minDateDate-Minimum allowed date
maxDateDate-Maximum allowed date
excludeDate(date: Date) => boolean-Function to exclude dates
hideOutsideDatesbooleanfalseHide dates outside current month
hideWeekdaysbooleanfalseHide weekdays row
withWeekNumbersbooleanfalseDisplay week numbers
firstDayOfWeek0-61First day of week
weekendDaysnumber[][0, 6]Weekend days indices
defaultLevel’month’ | ‘year’ | ‘decade''month’Initial display level
maxLevel’month’ | ‘year’ | ‘decade''decade’Max level user can go to
localestring’en’dayjs locale
sizeMantineSize’sm’Component size