dot-gl
Version:
An Interactive React Map Library with Redux.
2 lines (1 loc) • 1.45 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-redux"),a=require("react-map-gl"),r=require("@deck.gl/react"),o=require("../reducers/mapStateReducer.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../reducers/mapStyleReducer.js");var p=i(e);const l=require("prop-types");class n extends p.default.PureComponent{_onViewStateChange=({viewState:e,oldViewState:t})=>{const{dispatch:a}=this.props,r={longitude:e?.longitude??t?.longitude??0,latitude:e?.latitude??t?.latitude??0,zoom:e?.zoom??t?.zoom??0,pitch:e?.pitch??t?.pitch??0,bearing:e?.bearing??t?.bearing??0};a(o.updateMapState(r))};render(){const{mapState:e,mapStyle:t}=this.props;return p.default.createElement(r.DeckGL,{viewState:e,controller:!0,onViewStateChange:this._onViewStateChange},p.default.createElement(a.StaticMap,{mapStyle:t?.styleUrl??""}))}}n.propTypes={mapState:l.shape({longitude:l.number,latitude:l.number,zoom:l.number,pitch:l.number,bearing:l.number}),mapStyle:l.shape({styleUrl:l.string}),getRootState:l.func.isRequired,dispatch:l.func},n.defaultProps={mapState:{longitude:0,latitude:0,zoom:10,pitch:0,bearing:0},mapStyle:{styleUrl:"https://demotiles.maplibre.org/style.json"},getRootState:e=>e?.dotGl??{},dispatch:()=>null};const u=t.connect(((e,t)=>({mapState:t.getRootState(e)?.mapState??{},mapStyle:t.getRootState(e)?.mapStyle??{}})),(e=>({dispatch:e})))(n);exports.DotGL=u;