From af339ff34a5641ab7be11ab2386ebc99f397aafd Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Sat, 8 Nov 2014 09:27:27 +0800 Subject: [PATCH 1/5] chore(package.json): upgrade dependencies and devDependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index b7e8e5b9..c1cc02cb 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "html-webpack-plugin": "^1.1.0", "jest-cli": "^0.1.18", "jquery": "^2.1.1", - "jsx-loader": "^0.11.2", - "react-tools": "^0.11.2", + "jsx-loader": "^0.12.0", + "react-tools": "^0.12.0", "sass-loader": "^0.3.0", "style-loader": "^0.8.1", "tomchentw-npm-dev": "^1.1.0", @@ -63,7 +63,7 @@ "webpack-dev-server": "^1.6.5" }, "dependencies": { - "react": "^0.11.0", + "react": "^0.12.0", "deep-equal": "^0.2.1" }, "jest": { From 1c5a3fe18e4771e72381a5b3fd207d7a3f353518 Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Sat, 8 Nov 2014 09:30:09 +0800 Subject: [PATCH 2/5] chore(src): remove jsx pragma --- client/scripts/index.js | 1 - src/GoogleMapsMixin.js | 1 - src/InfoWindow.js | 1 - src/Map.js | 1 - src/Marker.js | 1 - src/Polygon.js | 1 - src/Polyline.js | 1 - src/__tests__/Map-test.js | 1 - src/__tests__/index-test.js | 1 - src/index.js | 1 - src/mixins/ChildMixin.js | 1 - src/mixins/EventBindingMixin.js | 1 - 12 files changed, 12 deletions(-) diff --git a/client/scripts/index.js b/client/scripts/index.js index 71b3ce82..ec48f608 100755 --- a/client/scripts/index.js +++ b/client/scripts/index.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; require("../styles/index.scss"); var React = require("react/addons"); diff --git a/src/GoogleMapsMixin.js b/src/GoogleMapsMixin.js index 7e9ab199..0aed9f74 100644 --- a/src/GoogleMapsMixin.js +++ b/src/GoogleMapsMixin.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/InfoWindow.js b/src/InfoWindow.js index cc333934..d117ec3c 100644 --- a/src/InfoWindow.js +++ b/src/InfoWindow.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/Map.js b/src/Map.js index b4158ab0..bc7da54c 100644 --- a/src/Map.js +++ b/src/Map.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/Marker.js b/src/Marker.js index 3ef42ef5..f9f382f6 100644 --- a/src/Marker.js +++ b/src/Marker.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/Polygon.js b/src/Polygon.js index 32d28e14..d4dca617 100644 --- a/src/Polygon.js +++ b/src/Polygon.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/Polyline.js b/src/Polyline.js index 201fca7a..49550e02 100644 --- a/src/Polyline.js +++ b/src/Polyline.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); diff --git a/src/__tests__/Map-test.js b/src/__tests__/Map-test.js index e049585f..0c591099 100644 --- a/src/__tests__/Map-test.js +++ b/src/__tests__/Map-test.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; jest.dontMock("../Map.js"); diff --git a/src/__tests__/index-test.js b/src/__tests__/index-test.js index 908352f4..838e9c74 100644 --- a/src/__tests__/index-test.js +++ b/src/__tests__/index-test.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; jest.dontMock("../index.js"); diff --git a/src/index.js b/src/index.js index 01b5e9d8..ddc2f433 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; exports.GoogleMapsMixin = require("./GoogleMapsMixin"); exports.Map = require("./Map"); diff --git a/src/mixins/ChildMixin.js b/src/mixins/ChildMixin.js index 8401f782..ba99051f 100644 --- a/src/mixins/ChildMixin.js +++ b/src/mixins/ChildMixin.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; var React = require("react/addons"); var deepEqual = require("deep-equal"); diff --git a/src/mixins/EventBindingMixin.js b/src/mixins/EventBindingMixin.js index 39f73675..61dfc7ca 100644 --- a/src/mixins/EventBindingMixin.js +++ b/src/mixins/EventBindingMixin.js @@ -1,4 +1,3 @@ -/** @jsx React.DOM */ "use strict"; module.exports = { From db6cea52258e72eed19dc5ac37ba3b3fe7fd5672 Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Sat, 8 Nov 2014 09:34:41 +0800 Subject: [PATCH 3/5] chore(client): upgrade React.render and rename variable --- client/scripts/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/scripts/index.js b/client/scripts/index.js index ec48f608..144257b9 100755 --- a/client/scripts/index.js +++ b/client/scripts/index.js @@ -194,7 +194,7 @@ var Body = React.createClass({ }); -var bodyRef = React.renderComponent( +var bodyComponent = React.render( , document.getElementById("react-root") ); From db2f3dcac30d57c9eb87b4f156d4714fa72f33ff Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Sat, 8 Nov 2014 09:36:58 +0800 Subject: [PATCH 4/5] chore(client): better naming convention for component and element --- client/scripts/index.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/client/scripts/index.js b/client/scripts/index.js index 144257b9..af702476 100755 --- a/client/scripts/index.js +++ b/client/scripts/index.js @@ -13,20 +13,20 @@ function geometryToComponentWithLatLng (geometry) { switch (type) { case "Polygon": return { - Component: Polygon, + ElementClass: Polygon, paths: coordinates.map(geometryToComponentWithLatLng, {type: "LineString"})[0] }; case "LineString": coordinates = coordinates.map(geometryToComponentWithLatLng, {type: "Point"}); return typeFromThis ? coordinates : { - Component: Polyline, + ElementClass: Polyline, path: coordinates }; case "Point": coordinates = new google.maps.LatLng(coordinates[1], coordinates[0]); return typeFromThis ? coordinates : { - Component: Marker, - ChildComponent: InfoWindow, + ElementClass: Marker, + ChildElementClass: InfoWindow, position: coordinates }; default: @@ -148,13 +148,13 @@ var Body = React.createClass({ _render (props, state) { var {geoStateBy} = state; - var components = state.geoJson.features.map((feature) => { + var elements = state.geoJson.features.map((feature) => { var {properties} = feature; var result = geometryToComponentWithLatLng(feature.geometry); - var Component = result.Component; - delete result.Component; + var ElementClass = result.ElementClass; + delete result.ElementClass; if (properties.isCenter) { - Component = Map; + ElementClass = Map; result.center = result.position; delete result.position; } @@ -177,19 +177,16 @@ var Body = React.createClass({ $merge: geoStatesOfFeature }); } - if (style.child) { - var {ChildComponent} = result; - delete result.ChildComponent; - return Component(style, ChildComponent(style.child)); - } - return Component(style); + return + {style.child ? : null} + ; }); return React.DOM.div({ style: { height: "100%" } - }, components); + }, elements); } }); From 317ff877ab25f2c28023aff7e4994ee8239fc14e Mon Sep 17 00:00:00 2001 From: Tom Chen Date: Sat, 8 Nov 2014 09:56:38 +0800 Subject: [PATCH 5/5] chore(client): replace update with spread operator --- client/scripts/index.js | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/client/scripts/index.js b/client/scripts/index.js index af702476..fbadfbc8 100755 --- a/client/scripts/index.js +++ b/client/scripts/index.js @@ -159,26 +159,13 @@ var Body = React.createClass({ delete result.position; } - var geoStatesOfFeature = geoStateBy[feature.id] || {}; - if (geoStatesOfFeature.visible === false) { + var {visible, child, ...geoStatesOfFeature} = geoStateBy[feature.id] || {}; + if (false === visible) { return null; } - var {style} = properties; - if (style) { - style = update(properties.style, { - $merge: result - }); - } else { - style = result; - } - if (geoStatesOfFeature) { - style = update(style, { - $merge: geoStatesOfFeature - }); - } - return - {style.child ? : null} + return + {child ? : null} ; });