From 317b5c099906c5638fa367eb7b36bbd637e80a52 Mon Sep 17 00:00:00 2001
From: Michael Diego <6419886+itsmichaeldiego@users.noreply.github.com>
Date: Fri, 21 Sep 2018 12:51:04 +0300
Subject: [PATCH] Revert 643 fix/map context (#645)
* Revert "Bump version to 1.0.7 (#644)"
This reverts commit 800092ae6f57648cf0ed74625a90752283ac1af4.
* Revert "Add passive scroll (#631)"
This reverts commit 40c8f67e78c1b851f5d35ef832ff5ef728db86af.
* Revert "Use React 16 portal to render map overlay (#643)"
This reverts commit b121bb673e9dae5ae558c8c98218f7fc02029da2.
---
src/google_map.js | 54 ++++++++++++++++++++---------------------------
1 file changed, 23 insertions(+), 31 deletions(-)
diff --git a/src/google_map.js b/src/google_map.js
index 180ff6a..14ff7d3 100644
--- a/src/google_map.js
+++ b/src/google_map.js
@@ -240,7 +240,7 @@ export default class GoogleMap extends Component {
this.zoomAnimationInProgress_ = false;
this.state = {
- overlay: null,
+ overlayCreated: false,
};
}
@@ -593,7 +593,7 @@ export default class GoogleMap extends Component {
: '2000px';
const div = document.createElement('div');
- this.overlay = div;
+ this.div = div;
div.style.backgroundColor = 'transparent';
div.style.position = 'absolute';
div.style.left = '0px';
@@ -607,21 +607,29 @@ export default class GoogleMap extends Component {
maps,
overlay.getProjection()
);
-
- this_.setState(state => ({
- ...state,
- overlay: div,
- }));
+ ReactDOM.unstable_renderSubtreeIntoContainer(
+ this_,
+ ,
+ div,
+ // remove prerendered markers
+ () => this_.setState({ overlayCreated: true })
+ );
},
onRemove() {
- this_.setState(state => ({
- ...state,
- overlay: null,
- }));
-
- if (this.overlay) {
- ReactDOM.unmountComponentAtNode(this.overlay);
+ if (this.div) {
+ ReactDOM.unmountComponentAtNode(this.div);
}
},
@@ -1060,7 +1068,7 @@ export default class GoogleMap extends Component {
};
render() {
- const mapMarkerPrerender = !this.state.overlay
+ const mapMarkerPrerender = !this.state.overlayCreated
?
- {this.state.overlay &&
- ReactDOM.createPortal(
- ,
- this.state.overlay
- )}
{/* render markers before map load done */}
{mapMarkerPrerender}