Skip to content

Commit 8b74e5a

Browse files
authored
Merge pull request arqex#276 from arqex/master
Update react-onclickoutside dependency and create the CalendarContainer
2 parents 9eae924 + bad3cdf commit 8b74e5a

File tree

4 files changed

+30
-120
lines changed

4 files changed

+30
-120
lines changed

DateTime.js

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,11 @@
33
var assign = require('object-assign'),
44
moment = require('moment'),
55
React = require('react'),
6-
DaysView = require('./src/DaysView'),
7-
MonthsView = require('./src/MonthsView'),
8-
YearsView = require('./src/YearsView'),
9-
TimeView = require('./src/TimeView')
6+
CalendarContainer = require('./src/CalendarContainer')
107
;
118

129
var TYPES = React.PropTypes;
1310
var Datetime = React.createClass({
14-
mixins: [
15-
require('./src/onClickOutside')
16-
],
17-
viewComponents: {
18-
days: DaysView,
19-
months: MonthsView,
20-
years: YearsView,
21-
time: TimeView
22-
},
2311
propTypes: {
2412
// value: TYPES.object | TYPES.string,
2513
// defaultValue: TYPES.object | TYPES.string,
@@ -411,8 +399,7 @@ var Datetime = React.createClass({
411399
},
412400

413401
render: function() {
414-
var Component = this.viewComponents[ this.state.currentView ],
415-
DOM = React.DOM,
402+
var DOM = React.DOM,
416403
className = 'rdt' + (this.props.className ?
417404
( Array.isArray( this.props.className ) ?
418405
' ' + this.props.className.join( ' ' ) : ' ' + this.props.className) : ''),
@@ -439,7 +426,7 @@ var Datetime = React.createClass({
439426
return DOM.div({className: className}, children.concat(
440427
DOM.div(
441428
{ key: 'dt', className: 'rdtPicker' },
442-
React.createElement( Component, this.getComponentProps())
429+
React.createElement( CalendarContainer, {view: this.state.currentView, viewProps: this.getComponentProps(), onClickOutside: this.handleClickOutside })
443430
)
444431
));
445432
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
},
7878
"dependencies": {
7979
"object-assign": "^3.0.0",
80-
"react-onclickoutside": "^4.1.0"
80+
"react-onclickoutside": "^5.9.0"
8181
},
8282
"pre-commit": [
8383
"lint",

src/CalendarContainer.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
var React = require('react'),
2+
DaysView = require('./DaysView'),
3+
MonthsView = require('./MonthsView'),
4+
YearsView = require('./YearsView'),
5+
TimeView = require('./TimeView'),
6+
onClickOutside = require('react-onclickoutside')
7+
;
8+
9+
var CalendarContainer = onClickOutside( React.createClass({
10+
viewComponents: {
11+
days: DaysView,
12+
months: MonthsView,
13+
years: YearsView,
14+
time: TimeView
15+
},
16+
17+
render: function() {
18+
return React.createElement( this.viewComponents[ this.props.view ], this.props.viewProps );
19+
},
20+
21+
handleClickOutside: function() {
22+
this.props.onClickOutside();
23+
}
24+
}));
25+
26+
module.exports = CalendarContainer;

src/onClickOutside.js

Lines changed: 0 additions & 103 deletions
This file was deleted.

0 commit comments

Comments
 (0)