Skip to content

Commit 22d9242

Browse files
committed
Merge pull request #2 from tomchentw/feature/upgrade-react-0.12
feature/upgrade react 0.12
2 parents 9898931 + 317ff87 commit 22d9242

13 files changed

Lines changed: 18 additions & 46 deletions

File tree

client/scripts/index.js

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
require("../styles/index.scss");
43
var React = require("react/addons");
@@ -14,20 +13,20 @@ function geometryToComponentWithLatLng (geometry) {
1413
switch (type) {
1514
case "Polygon":
1615
return {
17-
Component: Polygon,
16+
ElementClass: Polygon,
1817
paths: coordinates.map(geometryToComponentWithLatLng, {type: "LineString"})[0]
1918
};
2019
case "LineString":
2120
coordinates = coordinates.map(geometryToComponentWithLatLng, {type: "Point"});
2221
return typeFromThis ? coordinates : {
23-
Component: Polyline,
22+
ElementClass: Polyline,
2423
path: coordinates
2524
};
2625
case "Point":
2726
coordinates = new google.maps.LatLng(coordinates[1], coordinates[0]);
2827
return typeFromThis ? coordinates : {
29-
Component: Marker,
30-
ChildComponent: InfoWindow,
28+
ElementClass: Marker,
29+
ChildElementClass: InfoWindow,
3130
position: coordinates
3231
};
3332
default:
@@ -149,53 +148,37 @@ var Body = React.createClass({
149148

150149
_render (props, state) {
151150
var {geoStateBy} = state;
152-
var components = state.geoJson.features.map((feature) => {
151+
var elements = state.geoJson.features.map((feature) => {
153152
var {properties} = feature;
154153
var result = geometryToComponentWithLatLng(feature.geometry);
155-
var Component = result.Component;
156-
delete result.Component;
154+
var ElementClass = result.ElementClass;
155+
delete result.ElementClass;
157156
if (properties.isCenter) {
158-
Component = Map;
157+
ElementClass = Map;
159158
result.center = result.position;
160159
delete result.position;
161160
}
162161

163-
var geoStatesOfFeature = geoStateBy[feature.id] || {};
164-
if (geoStatesOfFeature.visible === false) {
162+
var {visible, child, ...geoStatesOfFeature} = geoStateBy[feature.id] || {};
163+
if (false === visible) {
165164
return null;
166165
}
167-
var {style} = properties;
168-
if (style) {
169-
style = update(properties.style, {
170-
$merge: result
171-
});
172-
} else {
173-
style = result;
174-
}
175166

176-
if (geoStatesOfFeature) {
177-
style = update(style, {
178-
$merge: geoStatesOfFeature
179-
});
180-
}
181-
if (style.child) {
182-
var {ChildComponent} = result;
183-
delete result.ChildComponent;
184-
return Component(style, ChildComponent(style.child));
185-
}
186-
return Component(style);
167+
return <ElementClass {...properties.style} {...result} {...geoStatesOfFeature}>
168+
{child ? <result.ChildElementClass {...child} /> : null}
169+
</ElementClass>;
187170
});
188171

189172
return React.DOM.div({
190173
style: {
191174
height: "100%"
192175
}
193-
}, components);
176+
}, elements);
194177
}
195178
});
196179

197180

198-
var bodyRef = React.renderComponent(
181+
var bodyComponent = React.render(
199182
<Body initialGeoJson={require("./geojson")} />,
200183
document.getElementById("react-root")
201184
);

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,16 @@
5454
"html-webpack-plugin": "^1.1.0",
5555
"jest-cli": "^0.1.18",
5656
"jquery": "^2.1.1",
57-
"jsx-loader": "^0.11.2",
58-
"react-tools": "^0.11.2",
57+
"jsx-loader": "^0.12.0",
58+
"react-tools": "^0.12.0",
5959
"sass-loader": "^0.3.0",
6060
"style-loader": "^0.8.1",
6161
"tomchentw-npm-dev": "^1.1.0",
6262
"webpack": "^1.4.7",
6363
"webpack-dev-server": "^1.6.5"
6464
},
6565
"dependencies": {
66-
"react": "^0.11.0",
66+
"react": "^0.12.0",
6767
"deep-equal": "^0.2.1"
6868
},
6969
"jest": {

src/GoogleMapsMixin.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/InfoWindow.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/Map.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/Marker.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/Polygon.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/Polyline.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32
var React = require("react/addons");
43

src/__tests__/Map-test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32

43
jest.dontMock("../Map.js");

src/__tests__/index-test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/** @jsx React.DOM */
21
"use strict";
32

43
jest.dontMock("../index.js");

0 commit comments

Comments
 (0)