@material-ui/lab
Version:
Material-UI Lab - Incubator for Material-UI React components.
89 lines (87 loc) • 2.69 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import clsx from 'clsx';
import Button from '@material-ui/core/Button';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import Dialog from '@material-ui/core/Dialog';
import { createStyles, withStyles } from '@material-ui/core/styles';
import { DIALOG_WIDTH, DIALOG_WIDTH_WIDER } from './constants/dimensions';
export const styles = createStyles({
dialogRoot: {
minWidth: DIALOG_WIDTH
},
dialogRootWider: {
minWidth: DIALOG_WIDTH_WIDER
},
dialogContainer: {
'&:focus > $dialogRoot': {
outline: 'auto',
'@media (pointer:coarse)': {
outline: 0
}
}
},
dialog: {
'&:first-child': {
padding: 0
}
},
dialogAction: {// requested for overrides
},
withAdditionalAction: {
// set justifyContent to default value to fix IE11 layout bug
// see https://github.com/mui-org/material-ui-pickers/pull/267
justifyContent: 'flex-start',
'& > *:first-child': {
marginRight: 'auto'
}
}
});
const PickersModalDialog = props => {
const {
open,
classes,
cancelText = 'Cancel',
children,
clearable = false,
clearText = 'Clear',
okText = 'OK',
onAccept,
onClear,
onDismiss,
onSetToday,
showTodayButton = false,
todayText = 'Today',
wider,
DialogProps
} = props;
const MuiDialogClasses = DialogProps === null || DialogProps === void 0 ? void 0 : DialogProps.classes;
return /*#__PURE__*/React.createElement(Dialog, _extends({
open: open,
onClose: onDismiss,
classes: _extends({
container: classes.dialogContainer,
paper: clsx(classes.dialogRoot, wider && classes.dialogRootWider)
}, MuiDialogClasses)
}, DialogProps), /*#__PURE__*/React.createElement(DialogContent, {
className: classes.dialog
}, children), /*#__PURE__*/React.createElement(DialogActions, {
className: clsx(classes.dialogAction, (clearable || showTodayButton) && classes.withAdditionalAction)
}, clearable && /*#__PURE__*/React.createElement(Button, {
color: "primary",
onClick: onClear
}, clearText), showTodayButton && /*#__PURE__*/React.createElement(Button, {
color: "primary",
onClick: onSetToday
}, todayText), cancelText && /*#__PURE__*/React.createElement(Button, {
color: "primary",
onClick: onDismiss
}, cancelText), okText && /*#__PURE__*/React.createElement(Button, {
color: "primary",
onClick: onAccept
}, okText)));
};
export default withStyles(styles, {
name: 'MuiPickersModalDialog'
})(PickersModalDialog);