Skip to content

Commit 733254a

Browse files
committed
Make changes to map style before handing to MapGL
1 parent 10da9a2 commit 733254a

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

src/App.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { useState, useEffect } from "react";
22
import MapGL, { Source, Layer, ViewportProps, MapRequest } from "react-map-gl";
3+
import type mapboxgl from "mapbox-gl";
34
import "mapbox-gl/dist/mapbox-gl.css";
45
// eslint-disable-next-line import/no-extraneous-dependencies
56
import { FeatureCollection } from "geojson";
@@ -18,6 +19,7 @@ interface State {
1819
origin: [number, number];
1920
destination: [number, number];
2021
route: FeatureCollection;
22+
basemapStyle: string | object;
2123
}
2224

2325
const initialOrigin: [number, number] = [60.16295, 24.93071];
@@ -33,6 +35,12 @@ const initialState: State = {
3335
bearing: 0,
3436
pitch: 0,
3537
},
38+
basemapStyle: {
39+
layers: [],
40+
sources: {},
41+
version: 8,
42+
glyphs: "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf",
43+
},
3644
};
3745

3846
const transformRequest = (originalURL?: string): MapRequest => {
@@ -49,6 +57,17 @@ const transformRequest = (originalURL?: string): MapRequest => {
4957
const App: React.FC = () => {
5058
const [state, setState] = useState(initialState);
5159

60+
useEffect(() => {
61+
const asyncAction = async (): Promise<void> => {
62+
const response = await fetch(
63+
"https://raw.githubusercontent.com/HSLdevcom/hsl-map-style/master/simple-style.json"
64+
);
65+
const style = (await response.json()) as mapboxgl.Style;
66+
setState((prevState) => ({ ...prevState, basemapStyle: style }));
67+
};
68+
asyncAction();
69+
}, []);
70+
5271
useEffect(() => {
5372
setState(
5473
(prevState): State => ({
@@ -88,7 +107,7 @@ const App: React.FC = () => {
88107
{...state.viewport}
89108
width="100%"
90109
height="90%"
91-
mapStyle="https://raw.githubusercontent.com/HSLdevcom/hsl-map-style/master/simple-style.json"
110+
mapStyle={state.basemapStyle}
92111
transformRequest={transformRequest}
93112
onViewportChange={(viewport): void =>
94113
setState((prevState): State => ({ ...prevState, viewport }))

0 commit comments

Comments
 (0)