YearPicker

Inline year picker component. Pick single year, multiple years, or a years range.

Import

import { YearPicker } from '@tidbcloud/uikit'

Basic Usage

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

Multiple Years

Set type="multiple" to allow selecting multiple years:

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

Years Range

Set type="range" to pick a range of years:

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

Min and Max Date

Set minDate and maxDate to constrain the selectable range:

import { useState } from 'react'
import { YearPicker } from '@tidbcloud/uikit'
 
function Demo() {
  const [value, setValue] = useState<Date | null>(null)
  return <YearPicker value={value} onChange={setValue} minDate={new Date(2021, 1, 1)} maxDate={new Date(2028, 1, 1)} />
}

Custom Year Format

Use yearsListFormat to customize year display:

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

Key Props

PropTypeDescription
valueDateValueSelected year value (controlled)
onChange(value: DateValue) => voidCalled when value changes
type’default’ | ‘multiple’ | ‘range’Picker type
allowDeselectbooleanAllow deselecting by clicking selected year
minDatestring | DateMinimum selectable date
maxDatestring | DateMaximum selectable date
defaultDatestring | DateInitial displayed decade
numberOfColumnsnumberNumber of pickers displayed side by side
yearsListFormatstringdayjs format for years list
decadeLabelFormatstringdayjs format for decade label
getYearControlPropsfunctionAdd props to year controls