Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration from React v0.13 to v0.14 #73

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions frontend/js/download/Detect.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';
var React = require('react/addons');
var React = require('react');
var ReactDOM = require('react-dom');
var Option = React.createFactory(require('./Option'));
var cx = require('classnames');

Expand Down Expand Up @@ -56,7 +57,7 @@ var Detect = React.createClass({
var windowTop = window.pageYOffset;
var windowBottom = windowTop + windowHeight;

var node = this.getDOMNode();
var node = ReactDOM.findDOMNode(this);
var nodeTop = node.offsetTop;
var nodeBottom = nodeTop + node.offsetHeight;
var offset;
Expand Down Expand Up @@ -84,7 +85,7 @@ var Detect = React.createClass({

mouseDown: function(e) {
var props = this.props;
var metadataPane = this.refs.option.refs.metadata.getDOMNode();
var metadataPane = ReactDOM.findDOMNode(this.refs.option.refs.metadata);
if (metadataPane.contains(e.target) && !this.state.clickFocused) {
this.setState({clickFocused: true});
}
Expand All @@ -94,7 +95,7 @@ var Detect = React.createClass({
blur: function(e) {
if (this.state.clickFocused) {
this.setState({clickFocused: false});
this.refs.option.refs.input.getDOMNode().focus();
this.refs.option.refs.input.focus();
return e.preventDefault();
}

Expand Down
8 changes: 4 additions & 4 deletions frontend/js/download/DetectList.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var Detect = React.createFactory(require('./Detect'));
var DOM = React.DOM, ul = DOM.ul, li = DOM.li;
var cx = require('classnames');
Expand All @@ -24,8 +24,8 @@ var DetectList = React.createClass({

var nextRef = Math.max(0, Math.min(currentIndex + offset, this.props.detects.length));
if (nextRef !== currentIndex) {
this.refs[currentIndex].refs.option.refs.input.getDOMNode().blur();
this.refs[nextRef].refs.option.refs.input.getDOMNode().focus();
this.refs[currentIndex].refs.option.refs.input.blur();
this.refs[nextRef].refs.option.refs.input.focus();
}
e.preventDefault();
}
Expand Down
7 changes: 3 additions & 4 deletions frontend/js/download/DownloadOverlay.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*globals Modernizr*/
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var DownloadOverlayOption = React.createFactory(require('./DownloadOverlayOption'));
var gruntify = require('./util').gruntify;
var DOM = React.DOM, div = DOM.div, form = DOM.form, button = DOM.button, input = DOM.input, ul = DOM.ul, li = DOM.li;
Expand Down Expand Up @@ -83,8 +83,7 @@ var DownloadOverlay = React.createClass({
},

toggleOverlay: function(e) {
var container = this.refs.container.getDOMNode();
if (!container.contains(e.target)) {
if (!this.refs.container.contains(e.target)) {
this.props.toggle(false);
}
},
Expand Down
8 changes: 4 additions & 4 deletions frontend/js/download/DownloadOverlayOption.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*globals ZeroClipboard, Modernizr*/
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var DOM = React.DOM, textarea = DOM.textarea, a = DOM.a, li = DOM.li, label = DOM.label, button = DOM.button, span=DOM.span;

var DownloadOverlayOption = React.createClass({
Expand All @@ -19,7 +19,7 @@ var DownloadOverlayOption = React.createClass({
var state = this.state;
var props = this.props;
if (state.hasFlash) {
var zeroClipboard = new ZeroClipboard(this.refs[props.title].getDOMNode());
var zeroClipboard = new ZeroClipboard(this.refs[props.title]);
ZeroClipboard.on('error', function() {
Modernizr.flash = false;
self.setState({hasFlash: false});
Expand Down Expand Up @@ -77,7 +77,7 @@ var DownloadOverlayOption = React.createClass({
componentDidUpdate: function() {
this.setupClipboard();
var textarea = this.refs.textarea;
textarea && textarea.getDOMNode().select();
textarea && textarea.select();
},

clickDownload: function() {
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/DownloadUI.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';
var React = require('react/addons');
var React = require('react');
var DetectList = React.createFactory(require('./DetectList'));
var LeftColumn = React.createFactory(require('./LeftColumn'));
var SearchHeader = React.createFactory(require('./SearchHeader'));
Expand Down Expand Up @@ -80,7 +80,7 @@ var DownloadUI = React.createClass({
focusFirst: function() {
var topDetect = this.refs.detectList.refs[0];
if (topDetect) {
topDetect.refs.option.refs.input.getDOMNode().focus();
topDetect.refs.option.refs.input.focus();
}
},

Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/LeftColumn.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var Option = React.createFactory(require('./Option'));
var util = require('./util');
var cx = require('classnames');
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/Metadata.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var MetadataDocs = React.createFactory(require('./MetadataDocs'));
var MetadataList = React.createFactory(require('./MetadataList'));
var MetadataNotes = React.createFactory(require('./MetadataNotes'));
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/MetadataDocs.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var DOM = React.DOM, div = DOM.div;
var MetadataDocs = React.createClass({
mixins: [PureRenderMixin],
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/MetadataList.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var util = require('./util');
var pluralize = util.pluralize;
var DOM = React.DOM, div = DOM.div, ul = DOM.ul, li = DOM.li;
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/MetadataNotes.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var DOM = React.DOM, div = DOM.div, a = DOM.a;
var MetadataNotes = React.createClass({
mixins: [PureRenderMixin],
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/MetadataPolyfills.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var util = require('./util');
var listify = util.listify;
var DOM = React.DOM, div = DOM.div, ul = DOM.ul, li = DOM.li, a = DOM.a;
Expand Down
7 changes: 4 additions & 3 deletions frontend/js/download/Option.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';
var React = require('react/addons');
var React = require('react');
var ReactDOM = require('react-dom');
var SVGToggle = React.createFactory(require('./SVGToggle'));
var Metadata = React.createFactory(require('./Metadata'));
var DOM = React.DOM, div = DOM.div, input = DOM.input, label = DOM.label;
Expand Down Expand Up @@ -49,7 +50,7 @@ var Option = React.createClass({

keyDown: function(e) {
if (e.which === 13) {
var input = this.refs.input.getDOMNode();
var input = this.refs.input;
input.checked = !input.checked;
this.change();
e.preventDefault();
Expand All @@ -58,7 +59,7 @@ var Option = React.createClass({

click: function(e) {
var props = this.props;
var toggle = this.refs.SVGToggle.getDOMNode();
var toggle = ReactDOM.findDOMNode(this.refs.SVGToggle);

if (props.ignoreLabelClick && !toggle.contains(e.target)) {
e.preventDefault();
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/download/SVGToggle.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var DOM = React.DOM, svg = DOM.svg, circle = DOM.circle, path = DOM.path;

var SVGToggle = React.createClass({
Expand Down
6 changes: 3 additions & 3 deletions frontend/js/download/SearchHeader.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';
var React = require('react/addons');
var PureRenderMixin = React.addons.PureRenderMixin;
var React = require('react');
var PureRenderMixin = require('react-addons-pure-render-mixin');
var Fuse = require('fuse.js');
var DOM = React.DOM, div = DOM.div, input = DOM.input, label = DOM.label, button = DOM.button;
var fuseOptions = {
Expand Down Expand Up @@ -44,7 +44,7 @@ var SearchHeader = React.createClass({
},

change: function() {
var val = this.refs.search.getDOMNode().value;
var val = this.refs.search.value;
this.props.onChange(fuse.search(val), val);
},

Expand Down
5 changes: 3 additions & 2 deletions frontend/js/download/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';
var React = require('react/addons');
var React = require('react');
var ReactDOM = require('react-dom');
var DownloadUI = React.createFactory(require('./DownloadUI'));
var currentSearch;
var shouldBuild;
Expand Down Expand Up @@ -159,7 +160,7 @@ ZeroClipboard.config({
flashLoadTimeout: 5000
});

React.render(DownloadUI({
ReactDOM.render(DownloadUI({
detects: window._modernizrMetadata,
options: window._options,
currentSearch: currentSearch,
Expand Down
4 changes: 2 additions & 2 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ process.env.cache_time = Date.now();
gulp.task('browserify', function() {
// the react lib has wonderful debugging messages, but it comes at the cost of a much
// larger lib. So use the `.min` mode when building the production site to save those byte$
var reactVersion = process.env.NODE_ENV === 'production' ? 'react/dist/react-with-addons.min' : 'react/addons';
var reactVersion = process.env.NODE_ENV === 'production' ? 'react/dist/react.min' : 'react';

return browserify('./frontend/js/download/index.js')
.transform(aliasify, {
aliases: {
'react/addons': reactVersion
'react': reactVersion
}
})
.bundle()
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@
"he": "^0.5.0",
"highlight.js": "^8.5.0",
"modernizr": "^3",
"react": "^0.13.0",
"react": "^0.14.0",
"react-addons-pure-render-mixin": "^0.14.7",
"react-dom": "^0.14.0",
"rss": "^1.1.1",
"yaml-front-matter": "^3.2.3",
"zeroclipboard": "^2.2.0"
Expand Down
3 changes: 2 additions & 1 deletion server/buildSteps/download.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
'use strict';
var React = require('react');
var Modernizr = require('modernizr');
var ReactDOMServer = require('react-dom/server');

var DownloadModule = require('../../frontend/js/download/DownloadUI');
var downloadFactory = React.createFactory(DownloadModule);
var options = require('../util/modernizrOptions');

// render a static version of the `builder` for a faster inital render/script-less clients
module.exports = React.renderToString(downloadFactory({detects:Modernizr.metadata(), options: options}));
module.exports = ReactDOMServer.renderToString(downloadFactory({detects:Modernizr.metadata(), options: options}));