diff --git a/packages/material-ui-lab/src/internal/pickers/PickersModalDialog.tsx b/packages/material-ui-lab/src/internal/pickers/PickersModalDialog.tsx index 470232bba16679..558ab579637e9f 100644 --- a/packages/material-ui-lab/src/internal/pickers/PickersModalDialog.tsx +++ b/packages/material-ui-lab/src/internal/pickers/PickersModalDialog.tsx @@ -1,10 +1,9 @@ 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, { DialogProps as MuiDialogProps } from '@material-ui/core/Dialog'; -import { MuiStyles, WithStyles, withStyles } from '@material-ui/core/styles'; +import Dialog, { DialogProps as MuiDialogProps, dialogClasses } from '@material-ui/core/Dialog'; +import { experimentalStyled as styled } from '@material-ui/core/styles'; import { DIALOG_WIDTH } from './constants/dimensions'; export interface ExportedPickerModalProps { @@ -52,44 +51,49 @@ export interface PickersModalDialogProps extends ExportedPickerModalProps { open: boolean; } -export type PickersModalDialogClassKey = - | 'container' - | 'paper' - | 'content' - | 'action' - | 'withAdditionalAction'; - -export const styles: MuiStyles = { - container: { +const PickersModalDialogRoot = styled( + Dialog, + {}, + { skipSx: true }, +)({ + [`& .${dialogClasses.container}`]: { outline: 0, }, - paper: { + [`& .${dialogClasses.paper}`]: { outline: 0, minWidth: DIALOG_WIDTH, }, - content: { - '&:first-child': { - padding: 0, - }, +}); + +const PickersModalDialogContent = styled( + DialogContent, + {}, + { skipSx: true }, +)({ + '&:first-of-type': { + padding: 0, }, - action: {}, - withAdditionalAction: { +}); + +const PickersModalDialogActions = styled( + DialogActions, + {}, + { skipSx: true }, +)(({ styleProps = {} }) => ({ + ...((!!styleProps.clearable || !!styleProps.showTodayButton) && { // 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': { + '& > *:first-of-type': { marginRight: 'auto', }, - }, -}; + }), +})); -const PickersModalDialog: React.FC> = ( - props, -) => { +const PickersModalDialog = (props: React.PropsWithChildren) => { const { cancelText = 'Cancel', children, - classes, clearable = false, clearText = 'Clear', DialogProps = {}, @@ -103,23 +107,13 @@ const PickersModalDialog: React.FC - {children} - + + {children} + {clearable && ( } {okText && } - - + + ); }; -export default withStyles(styles, { name: 'PrivatePickersModalDialog' })(PickersModalDialog); +export default PickersModalDialog;