Flutter docs
Default skin

DatePicker

To select or input a date.

When to use

By clicking the input box, you can select a date from a popup calendar.

Examples

API

DatePicker, DatePicker.RangePicker, and the picker panels are exported from @ceebee/ui/client.

Common API

PropertyDescriptionTypeDefaultVersion
allowClearCustomize clear buttonboolean | { clearIcon?: ReactNode }true5.8.0: Support object type
borderedWhether has border style, please use variant insteadbooleantrue-
classNameThe picker classNamestring-—
classNamesCustomize class for each semantic structure inside the component. Supports object or function.Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-—
dateRenderCustom rendering function for date cells, >= 5.4.0 use cellRender instead.function(currentDate: dayjs, today: dayjs) => React.ReactNode-< 5.4.0
cellRenderCustom rendering function for picker cells(current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode-5.4.0
componentsCustom panelsRecord<Panel | 'input', React.ComponentType>-5.14.0
defaultOpenInitial open state of pickerboolean-—
disabledDetermine whether the DatePicker is disabledbooleanfalse—
disabledDateSpecify the date that cannot be selected(currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean-info: 5.14.0
dropdownClassNameThe className of popup calendar, please use classNames.popup.root insteadstring--
formatTo set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom FormatformatType@rc-component/picker—
orderAuto order date when multiple or range selectionbooleantrue5.14.0
popupClassNameTo customize the className of the popup calendar, use classNames.popup.root insteadstring-4.23.0
preserveInvalidOnBlurDon't clear the input on blur even when the typed value is invalidbooleanfalse5.14.0
getPopupContainerTo set the container of the floating layer, while the default is to create a div element in bodyfunction(trigger)-—
inputReadOnlySet the readonly attribute of the input tag (avoids virtual keyboard on touch devices)booleanfalse—
localeLocalization configurationobjectdefault—
minDateThe minimum date, which also limits the range of panel switchingdayjs-5.14.0
maxDateThe maximum date, which also limits the range of panel switchingdayjs-5.14.0
modeThe picker panel mode ( Cannot select year or month anymore? )time | date | month | year | decade-—
needConfirmNeed click confirm button to trigger value change. Default false when multipleboolean-5.14.0
nextIconThe custom next iconReactNode-4.17.0
openThe open state of pickerboolean-—
panelRenderCustomize panel render(panelNode) => ReactNode-4.5.0
pickerSet picker typedate | week | month | quarter | yeardatequarter: 4.1.0
placeholderThe placeholder of date inputstring | \[string,string]-—
placementThe position where the selection box pops upbottomLeft bottomRight topLeft topRightbottomLeft—
popupStyleTo customize the style of the popup calendar, use styles.popup.root insteadCSSProperties{}—
prefixThe custom prefixReactNode-5.22.0
presetsThe preset ranges for quick selection, Since 5.8.0, preset value supports callback function.{ label: React.ReactNode, value: Dayjs | (() => Dayjs) }\[]-—
prevIconThe custom prev iconReactNode-4.17.0
previewValueWhen the user selects the date hover option, the value of the input field undergoes a temporary changefalse | hoverhover6.0.0
sizeTo determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32pxlarge | medium | small-—
statusSet validation status'error' | 'warning'-4.19.0
styleTo customize the style of the input boxCSSProperties{}—
stylesCustomize inline style for each semantic structure inside the component. Supports object or function.Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-—
suffixIconThe custom suffix iconReactNode-—
superNextIconThe custom super next iconReactNode-4.17.0
superPrevIconThe custom super prev iconReactNode-4.17.0
clearIcon(Only supports global configuration) Custom clear iconReactNode-×
variantVariants of pickeroutlined | borderless | filled | underlinedoutlined5.13.0 | underlined: 5.24.0
onClearCallback when click the clear button() => void-6.5.0
onOpenChangeCallback function, can be executed whether the popup calendar is popped up or closedfunction(open)-—
onPanelChangeCallback when picker panel mode is changedfunction(value, mode)-—
onSelectCallback when a date is selected, please use onCalendarChange insteadfunction(value)--

DatePicker

PropertyDescriptionTypeDefaultVersion
defaultPickerValueDefault panel date, will be reset when panel opendayjs-5.14.0
defaultValueTo set default date, if start time or end time is null or undefined, the date range will be an open intervaldayjs-—
disabledTimeTo specify the time that cannot be selectedfunction(date)-—
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM-DD—
multipleEnable multiple selection. Not support showTimebooleanfalse5.14.0
pickerValuePanel date. Used for controlled switching of panel date. Work with onPanelChangedayjs-5.14.0
renderExtraFooterRender extra footer in panel(mode) => React.ReactNode-—
showNowShow the fast access of current datetimeboolean-4.4.0
showTimeTo provide an additional time selectionobject | booleanTimePicker Options—
showTime.defaultValueUse showTime.defaultOpenValue insteaddayjsdayjs()5.27.3
showTime.defaultOpenValueTo set default time of selected date, demodayjsdayjs()—
showWeekShow week info when in DatePickerbooleanfalse5.14.0
valueTo set datedayjs-—
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs | null, dateString: string | null)-—
onOkCallback when click ok buttonfunction()-—
onPanelChangeCallback function for panel changingfunction(value, mode)-—

DatePicker\[picker=year]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-—
formatTo set the date format. refer to dayjs#formatformatTypeYYYY—
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-—
tagRenderCustomize tag render, only applies when multiple is set(props) => ReactNode-6.4.0
valueTo set datedayjs-—
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs | null, dateString: string | null)-—

DatePicker\[picker=quarter]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-—
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-\QQ—
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-—
tagRenderCustomize tag render, only applies when multiple is set(props) => ReactNode-6.4.0
valueTo set datedayjs-—
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs | null, dateString: string | null)-—

DatePicker\[picker=month]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-—
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM—
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-—
tagRenderCustomize tag render, only applies when multiple is set(props) => ReactNode-6.4.0
valueTo set datedayjs-—
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs | null, dateString: string | null)-—

DatePicker\[picker=week]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-—
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-wo—
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel(mode) => React.ReactNode-—
tagRenderCustomize tag render, only applies when multiple is set(props) => ReactNode-6.4.0
valueTo set datedayjs-—
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs | null, dateString: string | null)-—
showWeekShow week info when in DatePickerbooleantrue5.14.0

RangePicker

PropertyDescriptionTypeDefaultVersion
allowEmptyAllow start or end input leave empty\[boolean, boolean]\[false, false]—
cellRenderCustom rendering function for picker cells(current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode-5.4.0
dateRenderCustom rendering function for date cells, >= 5.4.0 use cellRender instead.function(currentDate: dayjs, today: dayjs) => React.ReactNode-< 5.4.0
defaultPickerValueDefault panel date, will be reset when panel open\[dayjs, dayjs]-5.14.0
defaultValueTo set default date\[dayjs, dayjs]-—
disabledIf disable start or end\[boolean, boolean]-—
disabledTimeTo specify the time that cannot be selectedfunction(date: dayjs, partial: start | end, info: { from?: dayjs })-info.from: 5.17.0
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM-DD HH:mm:ss—
idConfig input ids{ start?: string, end?: string }-5.14.0
pickerValuePanel date. Used for controlled switching of panel date. Work with onPanelChange\[dayjs, dayjs]-5.14.0
presetsThe preset ranges for quick selection, Since 5.8.0, preset value supports callback function.{ label: React.ReactNode, value: \[(Dayjs | (() => Dayjs)), (Dayjs | (() => Dayjs))] }\[]-—
renderExtraFooterRender extra footer in panel() => React.ReactNode-—
separatorSet separator between inputsReact.ReactNode<SwapRightOutlined />—
showTimeTo provide an additional time selectionobject | booleanTimePicker Options—
showTime.defaultValueUse showTime.defaultOpenValue instead\[dayjs, dayjs]\[dayjs(), dayjs()]5.27.3
showTime.defaultOpenValueTo set default time of selected date, demo\[dayjs, dayjs]\[dayjs(), dayjs()]—
valueTo set date\[dayjs, dayjs]-—
onCalendarChangeCallback function, can be executed when the start time or the end time of the range is changing. info argument is added in 4.4.0function(dates: \[dayjs, dayjs], dateStrings: \[string, string], info: { range:start|end })-—
onChangeCallback function, can be executed when the selected time is changingfunction(dates: \[dayjs, dayjs] | null, dateStrings: \[string, string] | null)-—
onFocusTrigger when get focusfunction(event, { range: 'start' | 'end' })-range: 5.14.0
onBlurTrigger when lose focusfunction(event, { range: 'start' | 'end' })-range: 5.14.0