Skip to content

Commit

Permalink
Merge 140a913 into b303112
Browse files Browse the repository at this point in the history
  • Loading branch information
simonguo committed Jun 6, 2018
2 parents b303112 + 140a913 commit 69fed5f
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 9 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@
"rsuite-affix": "^1.1.2",
"rsuite-docs": "^0.1.11",
"rsuite-theme": "^2.0.16",
"rsuite-utils": "^1.0.2",
"rsuite-utils": "^1.0.7",
"sinon": "^4.1.1",
"sinon-chai": "^2.8.0",
"style-loader": "^0.13.1",
Expand Down
52 changes: 44 additions & 8 deletions src/DatePicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import classNames from 'classnames';
import _ from 'lodash';
import { IntlProvider } from 'rsuite-intl';
import OverlayTrigger from 'rsuite-utils/lib/Overlay/OverlayTrigger';
import { getUnhandledProps, prefix } from 'rsuite-utils/lib/utils';
import { getUnhandledProps, prefix, createChainedFunction } from 'rsuite-utils/lib/utils';
import { MenuWrapper, Toggle, constants } from 'rsuite-utils/lib/Picker';

import Calendar from './Calendar';
Expand All @@ -17,15 +17,21 @@ import { shouldOnlyTime } from './utils/formatUtils';

const { namespace } = constants;

type PlacementEighPoints =
type Placement =
| 'bottomLeft'
| 'bottomRight'
| 'topLeft'
| 'topRight'
| 'leftTop'
| 'rightTop'
| 'leftBottom'
| 'rightBottom';
| 'rightBottom'
| 'auto'
| 'autoVerticalLeft'
| 'autoVerticalRight'
| 'autoHorizontalTop'
| 'autoHorizontalBottom';

type Range = {
label: React.Node,
closeOverlay?: boolean,
Expand Down Expand Up @@ -57,18 +63,26 @@ type Props = {
onPrevMonth?: (date: moment$Moment) => void,
onNextMonth?: (date: moment$Moment) => void,
onOk?: (date: moment$Moment, event: SyntheticEvent<*>) => void,
onEnter?: Function,
onEntering?: Function,
onEntered?: Function,
onExit?: Function,
onExiting?: Function,
onExited?: Function,
cleanable?: boolean,
isoWeek?: boolean,
limitStartYear?: number,
limitEndYear?: number,
className?: string,
menuClassName?: string,
classPrefix?: string,
container?: HTMLElement | (() => HTMLElement),
containerPadding?: number,
block?: boolean,
toggleComponentClass?: React.ElementType,
open?: boolean,
defaultOpen?: boolean,
placement?: PlacementEighPoints,
placement?: Placement,
onOpen?: () => void,
onClose?: () => void,
style?: Object
Expand Down Expand Up @@ -293,6 +307,16 @@ class DatePicker extends React.Component<Props, States> {
this.handleAllSelect(nextValue);
};

handleEntered = () => {
const { onOpen } = this.props;
onOpen && onOpen();
};

handleExited = () => {
const { onClose } = this.props;
onClose && onClose();
};

disabledToolbarHandle = (date?: moment$Moment): boolean => {
const { disabledDate } = this.props;
const allowDate = disabledDate ? disabledDate(date) : false;
Expand Down Expand Up @@ -376,14 +400,20 @@ class DatePicker extends React.Component<Props, States> {
open,
defaultOpen,
placement,
onOpen,
onClose,
classPrefix,
format,
locale,
toggleComponentClass,
block,
style,
container,
containerPadding,
onEnter,
onEntering,
onEntered,
onExit,
onExiting,
onExited,
...rest
} = this.props;

Expand Down Expand Up @@ -432,9 +462,15 @@ class DatePicker extends React.Component<Props, States> {
disabled={disabled}
trigger="click"
placement={placement}
onEntered={onOpen}
onExited={onClose}
onEnter={onEnter}
onEntering={onEntering}
onEntered={createChainedFunction(this.handleEntered, onEntered)}
onExit={onExit}
onExiting={onExiting}
onExited={createChainedFunction(this.handleExited, onExited)}
speaker={this.renderDropdownMenu(calendar)}
container={container}
containerPadding={containerPadding}
>
<Toggle
{...unhandled}
Expand Down

0 comments on commit 69fed5f

Please sign in to comment.