diff --git a/src/App.js b/src/App.js index e3558c4af44289e4ef85f6422902c7d2850aba5d..651dfb8b03dacf425e0a0a6aebdf8f5373b4e441 100644 --- a/src/App.js +++ b/src/App.js @@ -3,16 +3,10 @@ import { Map } from 'immutable'; import PointMap from './PointMap.js'; import './App.css'; -import { get_lam_points, connect_lam_ws, get_lam_station_data } from './utils/api-client.js'; +import { get_lam_points, connect_lam_ws } from './utils/api-client.js'; class App extends Component { - set_lam_points(lam_points) { - this.setState((prevState) => { - return { ...prevState, lam_points }; - }); - } - update_state(fn) { this.setState((prevState) => { return fn(prevState); @@ -33,8 +27,7 @@ class App extends Component { let width = window.innerWidth; let height = window.innerHeight; this.state = { lam_points: Map(), mapSize: { width, height } }; - get_lam_points("http://tie.digitraffic.fi", this.set_lam_points.bind(this)); - get_lam_station_data("http://tie.digitraffic.fi", this.update_state.bind(this)); + get_lam_points("http://tie.digitraffic.fi", this.update_state.bind(this)); connect_lam_ws("ws://tie.digitraffic.fi", this.update_state.bind(this)); this.handleResize = this.handleResize.bind(this); } diff --git a/src/utils/api-client.js b/src/utils/api-client.js index 02917a662642c1b01fe14a0cfd1bda6a675713e1..aae2d79df29ccf9feac65d4f51862fe02c27eead 100644 --- a/src/utils/api-client.js +++ b/src/utils/api-client.js @@ -3,7 +3,7 @@ import { Map } from 'immutable'; import LamStation from './lam-station.js'; export function get_lam_points(api_url, set_state) { - fetch(`${api_url}/api/v1/metadata/tms-stations`) + return fetch(`${api_url}/api/v1/metadata/tms-stations`) .then((res) => res.json()) .then((json) => { let stations = Map(); @@ -13,13 +13,17 @@ export function get_lam_points(api_url, set_state) { let station = new LamStation(id, coordinates, 0, 0); stations = stations.set(id, station); } - set_state(stations); + set_state((prevState) => { + const lam_points = stations; + return { ...prevState, lam_points }; + }); }) + .then(() => get_lam_station_data(api_url, set_state)) .catch(e => (console.error(e))); } export function get_lam_station_data(api_url, set_state) { - fetch(`${api_url}/api/v1/data/tms-data`) + return fetch(`${api_url}/api/v1/data/tms-data`) .then((res) => res.json()) .then((json) => { set_state((prevState) => {