diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-10-13 14:25:33 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-10-13 14:25:33 +0200 |
| commit | 5b4cb90f30c01bddce4bba5adf8a29d1e74a1e46 (patch) | |
| tree | d7b4c80fc367d4c4a24eb26c7fb85a1647abd55e /gui/src | |
| parent | 8ed83fceec60a0b55011c35db6bdcec31d7e3971 (diff) | |
| parent | 6b2a644e4e6bb3e54a0e3396e1e6fb8bb4908cb7 (diff) | |
| download | mullvadvpn-5b4cb90f30c01bddce4bba5adf8a29d1e74a1e46.tar.xz mullvadvpn-5b4cb90f30c01bddce4bba5adf8a29d1e74a1e46.zip | |
Merge branch 'fix-map-marker-size' into master
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/renderer/components/SvgMap.tsx | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/gui/src/renderer/components/SvgMap.tsx b/gui/src/renderer/components/SvgMap.tsx index 0c1b862cb5..27bc846d73 100644 --- a/gui/src/renderer/components/SvgMap.tsx +++ b/gui/src/renderer/components/SvgMap.tsx @@ -36,11 +36,13 @@ const zoomableGroupStyle = { transition: `transform ${MOVE_SPEED}ms ease-out`, }; -const markerStyle = mergeRsmStyle({ - default: { +function getMarkerImageStyle(zoom: number) { + return { + width: '60px', + transform: `translate(${-30 / zoom}px, ${-30 / zoom}px) scale(${1 / zoom})`, transition: `transform ${MOVE_SPEED}ms ease-out`, - }, -}); + }; +} const geographyStyle = mergeRsmStyle({ default: { @@ -219,6 +221,12 @@ function SvgMap(props: IProps) { const enableTransitionScheduler = useScheduler(); useEffect(() => enableTransitionScheduler.schedule(() => setEnableTransition(true)), []); + const markerStyle = useMemo( + () => mergeRsmStyle({ default: { display: props.showMarker ? undefined : 'none' } }), + [props.showMarker], + ); + const markerImageStyle = useMemo(() => getMarkerImageStyle(zoomLevel), [zoomLevel]); + return ( <ComposableMap width={width} @@ -257,18 +265,9 @@ function SvgMap(props: IProps) { )); }} </Geographies> - { - // disable CSS transition when moving between locations - // by using the different "key" - props.showMarker && ( - <Marker - key={`user-location-${center.join('-')}`} - coordinates={center} - style={markerStyle}> - <image x="-6" y="-6" width="12" xlinkHref={props.markerImagePath} /> - </Marker> - ) - } + <Marker coordinates={center} style={markerStyle}> + <image style={markerImageStyle} xlinkHref={props.markerImagePath} /> + </Marker> </ZoomableGroup> </ComposableMap> ); |
