@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
56 lines (45 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.ConnectedPostMarker = exports.connectPostMarker = void 0;
var _js = require("@randy.tarampi/js");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactRedux = require("react-redux");
var _actions = require("../actions");
var _postMarker = require("../components/postMarker");
var _selectors = _interopRequireDefault(require("../data/selectors"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var connectPostMarker = (0, _reactRedux.connect)(function (state, ownProps) {
var post = ownProps.post;
var postMarkerId = (0, _postMarker.buildPostMarkerId)(post);
var controlState = _selectors["default"].getControlStateForId(state, postMarkerId);
return {
isVisible: controlState ? controlState.get("visible") : false
};
}, function (dispatch, ownProps) {
var getGoogleMap = ownProps.getGoogleMap,
mapId = ownProps.mapId,
post = ownProps.post;
var postMarkerId = (0, _postMarker.buildPostMarkerId)(post);
return {
setMapCenter: function setMapCenter(newCenter) {
return dispatch((0, _actions.setGoogleMapCenterCreator)(getGoogleMap, mapId, newCenter));
},
onVisibilityToggle: function onVisibilityToggle(shouldBeVisible) {
return dispatch((0, _actions.setControlStateCreator)(postMarkerId, {
visible: !!shouldBeVisible
}));
}
};
});
exports.connectPostMarker = connectPostMarker;
var ConnectedPostMarker = connectPostMarker(_postMarker.PostMarkerComponent);
exports.ConnectedPostMarker = ConnectedPostMarker;
ConnectedPostMarker.propTypes = {
getGoogleMap: _propTypes["default"].func.isRequired,
post: _propTypes["default"].oneOfType(_js.POST_ENTITIES.map(_propTypes["default"].instanceOf)).isRequired,
mapId: _propTypes["default"].string.isRequired
};
var _default = ConnectedPostMarker;
exports["default"] = _default;