DatesProvider

Configure settings for all date components.

Import

import { DatesProvider } from '@tidbcloud/uikit'

Usage

DatesProvider lets you set various settings that are shared across all date components. It supports the following settings:

  • locale – dayjs locale (you need to import the corresponding locale module from dayjs)
  • firstDayOfWeek – number from 0 to 6, where 0 is Sunday and 6 is Saturday (default: 1 – Monday)
  • weekendDays – array of numbers from 0 to 6 (default: [0, 6] – Saturday and Sunday)
  • consistentWeeks – if true, every month will have 6 weeks (default: false)
import 'dayjs/locale/ru'
import { DatesProvider, DatePickerInput, MonthPickerInput } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <DatesProvider settings={{ locale: 'ru', firstDayOfWeek: 0, weekendDays: [0] }}>
      <MonthPickerInput label="Pick month" placeholder="Pick month" />
      <DatePickerInput mt="md" label="Pick date" placeholder="Pick date" />
    </DatesProvider>
  )
}

Consistent weeks

Set consistentWeeks: true to avoid layout shifts by ensuring every month has 6 weeks:

import { DatesProvider, DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <DatesProvider settings={{ consistentWeeks: true }}>
      <DatePicker />
    </DatesProvider>
  )
}

Localization

To add localization, import the dayjs locale module and set the locale setting:

import 'dayjs/locale/de'
import { DatesProvider, DatePicker } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <DatesProvider settings={{ locale: 'de' }}>
      <DatePicker />
    </DatesProvider>
  )
}

Next.js App Router

If you’re using Next.js app router, add 'use client' directive to the file where you import dayjs locales:

'use client'
 
import 'dayjs/locale/ru'
import { DatesProvider } from '@tidbcloud/uikit'
 
function Demo() {
  return <DatesProvider settings={{ locale: 'ru' }}>{/* Your app */}</DatesProvider>
}

Props

PropTypeDefaultDescription
settings.localestring’en’dayjs locale
settings.firstDayOfWeek0-61First day of week (0 = Sunday)
settings.weekendDaysnumber[][0, 6]Weekend days indices
settings.consistentWeeksbooleanfalseAlways show 6 weeks per month
childrenReactNode-Application content