From 3eb6b25e595144bbe6334c6d67f8687ea3eed25b Mon Sep 17 00:00:00 2001
From: Yuval Adam <_@yuv.al>
Date: Wed, 24 Apr 2019 10:39:03 +0300
Subject: Add history playback feature
---
src/Geshem.js | 43 +++++++++++++++++++++++++++++++++++++++----
src/index.js | 6 ++++--
2 files changed, 43 insertions(+), 6 deletions(-)
(limited to 'src')
diff --git a/src/Geshem.js b/src/Geshem.js
index 820e0e8..97db64a 100644
--- a/src/Geshem.js
+++ b/src/Geshem.js
@@ -1,4 +1,5 @@
import React, { Component } from 'react';
+import { BrowserRouter as Router, Route } from "react-router-dom";
import Slider from 'rc-slider';
import { DateTime } from 'luxon';
import axios from 'axios';
@@ -13,15 +14,27 @@ mapboxgl.accessToken = 'pk.eyJ1IjoieXV2YWRtIiwiYSI6ImNpcnMxbzBuaTAwZWdoa25oczlzZ
const IMGS_BASE_URL = 'https://imgs.geshem.space/'
+function App() {
+ return (
+
+
+
+
+ );
+}
+
+
class Geshem extends Component {
constructor(props) {
super(props);
+ const playback = props.match.params.date;
this.state = {
mapLoaded: false,
imgs: null,
+ playback: playback,
res: 280,
- slider: 9,
+ slider: playback ? 143 : 9,
lng: 35,
lat: 31.9,
zoom: 6.3,
@@ -65,6 +78,23 @@ class Geshem extends Component {
this.showRadarLayer('280', 9)
}
+ loadPlaybackData() {
+ const date = this.state.playback;
+ const hours = [...Array(24).keys()].map(h => `${String(h).padStart(2, '0')}`);
+ const minutes = [...Array(6).keys()].map(m => `${String(m * 10).padStart(2, '0')}`);
+ const paths = hours.reduce((acc, h) => acc.concat(
+ minutes.map(
+ m => `imgs/${date}/${h}${m}/280.png`
+ )
+ ), []);
+ this.setState({
+ imgs: {'280': paths}
+ });
+ if (this.state.mapLoaded) {
+ this.loadSources();
+ }
+ }
+
loadRadarData() {
axios({
url: IMGS_BASE_URL + 'imgs.json',
@@ -146,7 +176,12 @@ class Geshem extends Component {
componentDidMount() {
// this.getGeolocation();
- this.loadRadarData();
+ if (this.state.playback) {
+ this.loadPlaybackData();
+ }
+ else {
+ this.loadRadarData();
+ }
this.initMap();
}
@@ -192,7 +227,7 @@ class Geshem extends Component {
{ time }
- this.onChangeSlider(val)}/>
@@ -200,4 +235,4 @@ class Geshem extends Component {
}
}
-export default Geshem;
+export default App;
diff --git a/src/index.js b/src/index.js
index a27f6af..dbc6663 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,9 +1,11 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
-import Geshem from './Geshem';
+import App from './Geshem';
import * as serviceWorker from './serviceWorker';
-ReactDOM.render(, document.getElementById('root'));
+console.log()
+
+ReactDOM.render(, document.getElementById('root'));
serviceWorker.unregister();
--
cgit v1.3.1