Skip to content

Commit 248a1e4

Browse files
committed
moar fixes
1 parent 2342170 commit 248a1e4

File tree

4 files changed

+69
-65
lines changed

4 files changed

+69
-65
lines changed

dist/components/Marker.js

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
(function (global, factory) {
22
if (typeof define === "function" && define.amd) {
3-
define(['exports', 'react', 'prop-types', '../lib/String'], factory);
3+
define(["exports", "react", "prop-types", "lodash", "../lib/String"], factory);
44
} else if (typeof exports !== "undefined") {
5-
factory(exports, require('react'), require('prop-types'), require('../lib/String'));
5+
factory(exports, require("react"), require("prop-types"), require("lodash"), require("../lib/String"));
66
} else {
77
var mod = {
88
exports: {}
99
};
10-
factory(mod.exports, global.react, global.propTypes, global.String);
10+
factory(mod.exports, global.react, global.propTypes, global.lodash, global.String);
1111
global.Marker = mod.exports;
1212
}
13-
})(this, function (exports, _react, _propTypes, _String) {
14-
'use strict';
13+
})(this, function (exports, _react, _propTypes, _lodash, _String) {
14+
"use strict";
1515

1616
Object.defineProperty(exports, "__esModule", {
1717
value: true
@@ -102,7 +102,7 @@
102102
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
103103
}
104104

105-
var evtNames = ['click', 'dblclick', 'dragend', 'mousedown', 'mouseout', 'mouseover', 'mouseup', 'recenter'];
105+
var evtNames = ["click", "dblclick", "dragend", "mousedown", "mouseout", "mouseover", "mouseup", "recenter"];
106106

107107
var wrappedPromise = function wrappedPromise() {
108108
var wrappedPromise = {},
@@ -127,31 +127,30 @@
127127
}
128128

129129
_createClass(Marker, [{
130-
key: 'componentDidMount',
130+
key: "componentDidMount",
131131
value: function componentDidMount() {
132132
this.markerPromise = wrappedPromise();
133133
this.renderMarker();
134134
}
135135
}, {
136-
key: 'componentDidUpdate',
136+
key: "componentDidUpdate",
137137
value: function componentDidUpdate(prevProps) {
138-
console.log(this.props, prevProps);
139-
if (this.props.map !== prevProps.map || this.props.position.lat !== prevProps.position.lat || this.props.position.lng !== prevProps.position.lng || this.props.icon !== prevProps.icon) {
138+
if (!(0, _lodash.isEqual)(this.props.map, prevProps.map) || !(0, _lodash.isEqual)(this.props.position, prevProps.position) || !(0, _lodash.isEqual)(this.props.icon, prevProps.icon)) {
140139
if (this.marker) {
141140
this.marker.setMap(null);
142141
}
143142
this.renderMarker();
144143
}
145144
}
146145
}, {
147-
key: 'componentWillUnmount',
146+
key: "componentWillUnmount",
148147
value: function componentWillUnmount() {
149148
if (this.marker) {
150149
this.marker.setMap(null);
151150
}
152151
}
153152
}, {
154-
key: 'renderMarker',
153+
key: "renderMarker",
155154
value: function renderMarker() {
156155
var _this2 = this;
157156

@@ -164,7 +163,7 @@
164163
label = _props.label,
165164
draggable = _props.draggable,
166165
title = _props.title,
167-
props = _objectWithoutProperties(_props, ['map', 'google', 'position', 'mapCenter', 'icon', 'label', 'draggable', 'title']);
166+
props = _objectWithoutProperties(_props, ["map", "google", "position", "mapCenter", "icon", "label", "draggable", "title"]);
168167

169168
if (!google) {
170169
return null;
@@ -192,31 +191,33 @@
192191
this.markerPromise.resolve(this.marker);
193192
}
194193
}, {
195-
key: 'getMarker',
194+
key: "getMarker",
196195
value: function getMarker() {
197196
return this.markerPromise;
198197
}
199198
}, {
200-
key: 'handleEvent',
199+
key: "handleEvent",
201200
value: function handleEvent(evt) {
202201
var _this3 = this;
203202

204203
return function (e) {
205-
var evtName = 'on' + (0, _String.camelize)(evt);
204+
var evtName = "on" + (0, _String.camelize)(evt);
206205
if (_this3.props[evtName]) {
207206
_this3.props[evtName](_this3.props, _this3.marker, e);
208207
}
209208
};
210209
}
211210
}, {
212-
key: 'render',
211+
key: "render",
213212
value: function render() {
214213
return _react2.default.createElement(
215214
_react.Fragment,
216215
null,
217-
this.props.children && this.marker ? _react2.default.Children.only(_react2.default.cloneElement(this.props.children, { marker: this.marker,
216+
this.props.children && this.marker ? _react2.default.Children.only(_react2.default.cloneElement(this.props.children, {
217+
marker: this.marker,
218218
google: this.props.google,
219-
map: this.props.map })) : null
219+
map: this.props.map
220+
})) : null
220221
);
221222
}
222223
}]);
@@ -234,7 +235,7 @@
234235
});
235236

236237
Marker.defaultProps = {
237-
name: 'Marker'
238+
name: "Marker"
238239
};
239240

240241
exports.default = Marker;

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,7 @@
8181
"react": "~0.14.8 || ^15.0.0 || ^16.0.0",
8282
"react-dom": "~0.14.8 || ^15.0.0 || ^16.0.0"
8383
},
84-
"dependencies": {}
84+
"dependencies": {
85+
"lodash": "^4.17.11"
86+
}
8587
}

src/components/Marker.js

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
1-
import React, {Fragment} from 'react'
2-
import PropTypes from 'prop-types'
1+
import React, { Fragment } from "react";
2+
import PropTypes from "prop-types";
3+
import { isEqual } from "lodash";
34

4-
import { camelize } from '../lib/String'
5+
import { camelize } from "../lib/String";
56

67
const evtNames = [
7-
'click',
8-
'dblclick',
9-
'dragend',
10-
'mousedown',
11-
'mouseout',
12-
'mouseover',
13-
'mouseup',
14-
'recenter',
8+
"click",
9+
"dblclick",
10+
"dragend",
11+
"mousedown",
12+
"mouseout",
13+
"mouseover",
14+
"mouseup",
15+
"recenter"
1516
];
1617

1718
const wrappedPromise = function() {
18-
var wrappedPromise = {},
19-
promise = new Promise(function (resolve, reject) {
20-
wrappedPromise.resolve = resolve;
21-
wrappedPromise.reject = reject;
22-
});
23-
wrappedPromise.then = promise.then.bind(promise);
24-
wrappedPromise.catch = promise.catch.bind(promise);
25-
wrappedPromise.promise = promise;
26-
27-
return wrappedPromise;
28-
}
19+
var wrappedPromise = {},
20+
promise = new Promise(function(resolve, reject) {
21+
wrappedPromise.resolve = resolve;
22+
wrappedPromise.reject = reject;
23+
});
24+
wrappedPromise.then = promise.then.bind(promise);
25+
wrappedPromise.catch = promise.catch.bind(promise);
26+
wrappedPromise.promise = promise;
27+
28+
return wrappedPromise;
29+
};
2930

3031
export class Marker extends React.Component {
3132

@@ -35,15 +36,13 @@ export class Marker extends React.Component {
3536
}
3637

3738
componentDidUpdate(prevProps) {
38-
console.log(this.props, prevProps);
39-
if ((this.props.map !== prevProps.map) ||
40-
(this.props.position.lat !== prevProps.position.lat) ||
41-
(this.props.position.lng !== prevProps.position.lng) ||
42-
(this.props.icon !== prevProps.icon)) {
43-
if (this.marker) {
44-
this.marker.setMap(null);
45-
}
46-
this.renderMarker();
39+
if (!isEqual(this.props.map, prevProps.map) ||
40+
!isEqual(this.props.position, prevProps.position) ||
41+
!isEqual(this.props.icon, prevProps.icon)) {
42+
if (this.marker) {
43+
this.marker.setMap(null);
44+
}
45+
this.renderMarker();
4746
}
4847
}
4948

@@ -66,7 +65,7 @@ export class Marker extends React.Component {
6665
...props
6766
} = this.props;
6867
if (!google) {
69-
return null
68+
return null;
7069
}
7170

7271
let pos = position || mapCenter;
@@ -98,11 +97,11 @@ export class Marker extends React.Component {
9897

9998
handleEvent(evt) {
10099
return (e) => {
101-
const evtName = `on${camelize(evt)}`
100+
const evtName = `on${camelize(evt)}`;
102101
if (this.props[evtName]) {
103102
this.props[evtName](this.props, this.marker, e);
104103
}
105-
}
104+
};
106105
}
107106

108107
render() {
@@ -111,27 +110,29 @@ export class Marker extends React.Component {
111110
{this.props.children && this.marker ?
112111
React.Children.only(
113112
React.cloneElement(
114-
this.props.children,
115-
{ marker: this.marker,
113+
this.props.children,
114+
{
115+
marker: this.marker,
116116
google: this.props.google,
117-
map: this.props.map}
117+
map: this.props.map
118+
}
118119
)
119120
) : null
120121
}
121122
</Fragment>
122-
)
123+
);
123124
}
124125
}
125126

126127
Marker.propTypes = {
127128
position: PropTypes.object,
128129
map: PropTypes.object
129-
}
130+
};
130131

131-
evtNames.forEach(e => Marker.propTypes[e] = PropTypes.func)
132+
evtNames.forEach(e => Marker.propTypes[e] = PropTypes.func);
132133

133134
Marker.defaultProps = {
134-
name: 'Marker'
135-
}
135+
name: "Marker"
136+
};
136137

137-
export default Marker
138+
export default Marker;

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4100,7 +4100,7 @@ lodash.words@^3.0.0:
41004100
dependencies:
41014101
lodash._root "^3.0.0"
41024102

4103-
lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1:
4103+
lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1:
41044104
version "4.17.11"
41054105
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
41064106
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==

0 commit comments

Comments
 (0)