/
githubmirror
/
material-ui
Обзор
Документация
Войти
/
githubmirror
/
material-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
docs/data/material/getting-started/templates/dashboard/components/CustomDatePicker.js
58 строк
2 KB
Kenan Yusuf
[core] Upgrade MUI X packages to v8 (#45990)
14 май 2025, 14:07
Не верифицирован
14 май 2025, 14:07
433a9fc
Код
Авторство
О чём код?
import * as React from 'react'; import dayjs from 'dayjs'; import { useForkRef } from '@mui/material/utils'; import Button from '@mui/material/Button'; import CalendarTodayRoundedIcon from '@mui/icons-material/CalendarTodayRounded'; import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { DatePicker } from '@mui/x-date-pickers/DatePicker'; import { useParsedFormat, usePickerContext, useSplitFieldProps, } from '@mui/x-date-pickers'; function ButtonField(props) { const { forwardedProps } = useSplitFieldProps(props, 'date'); const pickerContext = usePickerContext(); const handleRef = useForkRef(pickerContext.triggerRef, pickerContext.rootRef); const parsedFormat = useParsedFormat(); const valueStr = pickerContext.value == null ? parsedFormat : pickerContext.value.format(pickerContext.fieldFormat); return ( <Button {...forwardedProps} variant="outlined" ref={handleRef} size="small" startIcon={<CalendarTodayRoundedIcon fontSize="small" />} sx={{ minWidth: 'fit-content' }} onClick={() => pickerContext.setOpen((prev) => !prev)} > {pickerContext.label ?? valueStr} </Button> ); } export default function CustomDatePicker() { const [value, setValue] = React.useState(dayjs('2023-04-17')); return ( <LocalizationProvider dateAdapter={AdapterDayjs}> <DatePicker value={value} label={value == null ? null : value.format('MMM DD, YYYY')} onChange={(newValue) => setValue(newValue)} slots={{ field: ButtonField }} slotProps={{ nextIconButton: { size: 'small' }, previousIconButton: { size: 'small' }, }} views={['day', 'month', 'year']} /> </LocalizationProvider> ); }