import React, { Fragment, PureComponent } from 'react'; import PropTypes from 'prop-types'; import { DatePicker, KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'; import MomentUtils from '@date-io/moment'; import DateFnsUtils from '@date-io/date-fns'; import { withStyles } from '@material-ui/core/styles'; import frLocale from 'date-fns/locale/fr'; import ruLocale from 'date-fns/locale/ru'; import enLocale from 'date-fns/locale/en-US'; import { MenuItem, Menu, Icon, IconButton, Typography, Grid } from '@material-ui/core'; const localeMap = { en: enLocale, fr: frLocale, ru: ruLocale, }; const styles = theme => ({ demo: { height: 240, }, divider: { display: 'block', margin: `${theme.spacing(3)}px 0`, }, picker: { margin: `${theme.spacing(3)}px 5px`, } }); class DateInput extends PureComponent { state = { selectedDate: new Date(), anchorEl: null, currentLocale: 'fr', } handleDateChange = (date) => { this.setState({ selectedDate: date }); } handleMenuOpen = (event) => { event.stopPropagation(); this.setState({ anchorEl: event.currentTarget }); } handleMenuClose = () => { this.setState({ anchorEl: null }); }; selectLocale = (selectedLocale) => { this.setState({ currentLocale: selectedLocale, anchorEl: null, }); } render() { const { selectedDate, currentLocale, anchorEl } = this.state; const { classes } = this.props; const locale = localeMap[currentLocale]; return ( Basic usage
Keyboard Input
Localization
more_vert ), }} />
{ Object.keys(localeMap).map(localeItem => ( this.selectLocale(localeItem)} > {localeItem} )) }
); } } DateInput.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(DateInput);