Skip to content

Commit 822cb0d

Browse files
committed
Merge pull request quri#124 from alfonsoperez/reactv014
Reactv014
2 parents 521b5db + a947aae commit 822cb0d

File tree

8 files changed

+44
-33
lines changed

8 files changed

+44
-33
lines changed

examples/basic/basic.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { Component } from "react";
2+
import ReactDOM from "react-dom";
23
import DateTimeField from "react-bootstrap-datetimepicker";
34
import moment from "moment";
45

@@ -157,4 +158,4 @@ class Basic extends Component {
157158

158159

159160

160-
React.render(React.createFactory(Basic)(), document.getElementById("example"));
161+
ReactDOM.render(React.createFactory(Basic)(), document.getElementById("example"));

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"author": "Loïc CHOLLIER <[email protected]>",
2727
"license": "MIT",
2828
"peerDependencies": {
29-
"react": ">=0.12"
29+
"react": ">=0.14"
3030
},
3131
"jest": {
3232
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
@@ -74,7 +74,9 @@
7474
"html-webpack-plugin": "^1.1.0",
7575
"jest-cli": "^0.5.0",
7676
"jsx-loader": "^0.12.2",
77-
"react": "^0.13.3",
77+
"react": "^0.14.2",
78+
"react-addons-test-utils": "^0.14.2",
79+
"react-dom": "^0.14.2",
7880
"requirejs": "~2.1.9",
7981
"webpack": "^1.5.1",
8082
"webpack-dev-server": "^1.7.0"

src/DateTimeField.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { Component, PropTypes } from "react";
2+
import {findDOMNode} from "react-dom";
23
import moment from "moment";
34
import { Glyphicon } from "react-bootstrap";
45
import DateTimePicker from "./DateTimePicker.js";
@@ -47,7 +48,7 @@ export default class DateTimeField extends Component {
4748
showToday: PropTypes.bool,
4849
viewMode: PropTypes.string,
4950
size: PropTypes.oneOf([Constants.SIZE_SMALL, Constants.SIZE_MEDIUM, Constants.SIZE_LARGE]),
50-
daysOfWeekDisabled: PropTypes.arrayOf(PropTypes.integer)
51+
daysOfWeekDisabled: PropTypes.arrayOf(PropTypes.number)
5152
}
5253

5354
state = {
@@ -262,7 +263,7 @@ export default class DateTimeField extends Component {
262263
this.setState({
263264
showPicker: true
264265
});
265-
gBCR = this.refs.dtpbutton.getDOMNode().getBoundingClientRect();
266+
gBCR = this.refs.dtpbutton.getBoundingClientRect();
266267
classes = {
267268
"bootstrap-datetimepicker-widget": true,
268269
"dropdown-menu": true
@@ -271,11 +272,11 @@ export default class DateTimeField extends Component {
271272
top: gBCR.top + window.pageYOffset - document.documentElement.clientTop,
272273
left: gBCR.left + window.pageXOffset - document.documentElement.clientLeft
273274
};
274-
offset.top = offset.top + this.refs.datetimepicker.getDOMNode().offsetHeight;
275+
offset.top = offset.top + this.refs.datetimepicker.offsetHeight;
275276
scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
276-
placePosition = this.props.direction === "up" ? "top" : this.props.direction === "bottom" ? "bottom" : this.props.direction === "auto" ? offset.top + this.refs.widget.getDOMNode().offsetHeight > window.offsetHeight + scrollTop && this.refs.widget.offsetHeight + this.refs.datetimepicker.getDOMNode().offsetHeight > offset.top ? "top" : "bottom" : void 0;
277+
placePosition = this.props.direction === "up" ? "top" : this.props.direction === "bottom" ? "bottom" : this.props.direction === "auto" ? offset.top + this.refs.widget.offsetHeight > window.offsetHeight + scrollTop && this.refs.widget.offsetHeight + this.refs.datetimepicker.offsetHeight > offset.top ? "top" : "bottom" : void 0;
277278
if (placePosition === "top") {
278-
offset.top = -this.refs.widget.getDOMNode().offsetHeight - this.getDOMNode().clientHeight - 2;
279+
offset.top = -this.refs.widget.offsetHeight - this.clientHeight - 2;
279280
classes.top = true;
280281
classes.bottom = false;
281282
classes["pull-right"] = true;
@@ -300,7 +301,7 @@ export default class DateTimeField extends Component {
300301
}
301302

302303
closePicker = () => {
303-
let style = this.state.widgetStyle;
304+
let style = {...this.state.widgetStyle};
304305
style.left = -9999;
305306
style.display = "none";
306307
return this.setState({

src/__tests__/DateTimeField-test.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import React from "react";
2+
import TestUtils from "react-addons-test-utils";
3+
14
jest.dontMock("moment");
2-
import React from "react/addons";
35
jest.dontMock("../DateTimeField.js");
4-
const { TestUtils } = React.addons;
56

67
describe("DateTimeField", function() {
78
const moment = require("moment");
@@ -15,7 +16,7 @@ describe("DateTimeField", function() {
1516
it("shows the right date for a given dateTime and inputFormat", function() {
1617
const component = TestUtils.renderIntoDocument(<DateTimeField dateTime={happyDate.format("x")} />);
1718
const input = TestUtils.findRenderedDOMComponentWithTag(component, "input");
18-
expect(input.getDOMNode().value).toBe("06/05/90 7:30 AM");
19+
expect(input.value).toBe("06/05/90 7:30 AM");
1920
});
2021

2122
});
@@ -41,25 +42,25 @@ describe("DateTimeField", function() {
4142
it("changes the displayed date when dateTime changes", function() {
4243
const Parent = createParent();
4344
const input = TestUtils.findRenderedDOMComponentWithTag(Parent, "input");
44-
expect(input.getDOMNode().value).toBe("06/05/90 7:30 AM");
45+
expect(input.value).toBe("06/05/90 7:30 AM");
4546
Parent.setState({dateTime: moment("1981-06-04 05:45").format("x")});
46-
expect(input.getDOMNode().value).toBe("06/04/81 5:45 AM");
47+
expect(input.value).toBe("06/04/81 5:45 AM");
4748
});
4849

4950
it("changes the displayed format when inputFormat changes", function() {
5051
const Parent = createParent();
5152
const input = TestUtils.findRenderedDOMComponentWithTag(Parent, "input");
52-
expect(input.getDOMNode().value).toBe("06/05/90 7:30 AM");
53+
expect(input.value).toBe("06/05/90 7:30 AM");
5354
Parent.setState({inputFormat: "x"});
54-
expect(input.getDOMNode().value).toBe(happyDate.format("x"));
55+
expect(input.value).toBe(happyDate.format("x"));
5556
});
5657

5758
it("doesn't change the defaultText if dateTime didn't change", function() {
5859
const Parent = createParent({defaultText: "Pick a date"});
5960
const input = TestUtils.findRenderedDOMComponentWithTag(Parent, "input");
60-
expect(input.getDOMNode().value).toBe("Pick a date");
61+
expect(input.value).toBe("Pick a date");
6162
Parent.setState({});
62-
expect(input.getDOMNode().value).toBe("Pick a date");
63+
expect(input.value).toBe("Pick a date");
6364
});
6465

6566

src/__tests__/DateTimePickerHours-test.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import React from "react/addons";
1+
import React from "react";
2+
import TestUtils from "react-addons-test-utils";
23
import Constants from "../Constants.js";
4+
35
jest.dontMock("../DateTimePickerHours.js");
4-
const { TestUtils } = React.addons;
56

67
describe("DateTimePickerHours", function() {
78
const DateTimePickerHours = require("../DateTimePickerHours.js");
@@ -86,7 +87,7 @@ describe("DateTimePickerHours", function() {
8687
/>
8788
);
8889
const hourList = TestUtils.scryRenderedDOMComponentsWithClass(hours, "hour");
89-
expect(hourList.map((x) => x.props.children)).toEqual(["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"]);
90+
expect(hourList.map((x) => x.textContent)).toEqual(["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"]);
9091
});
9192

9293
});

src/__tests__/DateTimePickerMinutes-test.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import React from "react/addons";
1+
import React from "react";
2+
import TestUtils from "react-addons-test-utils";
23
import Constants from "../Constants.js";
4+
35
jest.dontMock("../DateTimePickerMinutes.js");
4-
const { TestUtils } = React.addons;
56

67
describe("DateTimePickerMinutes", function() {
78
const DateTimePickerMinutes = require("../DateTimePickerMinutes.js");
@@ -86,7 +87,7 @@ describe("DateTimePickerMinutes", function() {
8687
/>
8788
);
8889
const minuteList = TestUtils.scryRenderedDOMComponentsWithClass(minutes, "minute");
89-
expect(minuteList.map((x) => x.props.children)).toEqual(["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"]);
90+
expect(minuteList.map((x) => x.textContent)).toEqual(["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"]);
9091
});
9192

9293
});

src/__tests__/DateTimePickerMonths-test.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import React from "react";
2+
import TestUtils from "react-addons-test-utils";
3+
14
jest.dontMock("moment");
2-
import React from "react/addons";
35
jest.dontMock("../DateTimePickerMonths.js");
4-
const { TestUtils } = React.addons;
56

67
describe("DateTimePickerMonths", function() {
78
const moment = require("moment");
@@ -59,12 +60,12 @@ describe("DateTimePickerMonths", function() {
5960

6061
it("rendersJanuary through December", function() {
6162
const monthList = TestUtils.scryRenderedDOMComponentsWithClass(months, "month");
62-
expect(monthList.map((x) => x.props.children)).toEqual(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]);
63+
expect(monthList.map((x) => x.textContent)).toEqual(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]);
6364
});
6465

6566
it("has an active month that is now's month", function() {
6667
const active = TestUtils.findRenderedDOMComponentWithClass(months, "active");
67-
expect(active.props.children).toBe(moment().format("MMM"));
68+
expect(active.textContent).toBe(moment().format("MMM"));
6869
});
6970

7071
it("has no active month that if viewDate is another year than selectedDate", function() {

src/__tests__/DateTimePickerYears-test.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
jest.dontMock("moment");
2-
import React from "react/addons";
1+
import React from "react";
2+
import TestUtils from "react-addons-test-utils";
3+
34
jest.dontMock("../DateTimePickerYears.js");
4-
const { TestUtils } = React.addons;
5+
jest.dontMock("moment");
56

67
describe("DateTimePickerYears", function() {
78
const moment = require("moment");
@@ -56,12 +57,14 @@ describe("DateTimePickerYears", function() {
5657
for (let i = 0; i < 12; i++) {
5758
array.push(beginningDecade + i - 1);
5859
} // [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020]
59-
expect(yearList.map((x) => x.props.children)).toEqual(array);
60+
61+
expect(yearList.map((x) => parseInt(x.textContent))).toEqual(array);
62+
6063
});
6164

6265
it("has an active year that is now's year", function() {
6366
const active = TestUtils.findRenderedDOMComponentWithClass(years, "active");
64-
expect(active.props.children).toBe(parseInt(moment().format("GGGG")));
67+
expect(parseInt(active.textContent)).toBe(parseInt(moment().format("GGGG")));
6568
});
6669

6770
it("has no active year that if viewDate is another decade than selectedDate", function() {

0 commit comments

Comments
 (0)