From a8911784113ac80d1989341838c601d4a54b5c96 Mon Sep 17 00:00:00 2001 From: Leon Fedotov Date: Thu, 31 Oct 2019 13:44:22 +0200 Subject: cool fixes --- src/Geshem.js | 51 +++++++++++++++++++-------------------------------- 1 file changed, 19 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/Geshem.js b/src/Geshem.js index 1163ea8..9f4abfd 100644 --- a/src/Geshem.js +++ b/src/Geshem.js @@ -22,43 +22,30 @@ function App() { function Geshem(props) { const [images, setImages] = useState([]); const [playback] = useState( - props.match.params.date || window.location.search.slice(-8) || false - ); + props.match.params.date || new URL(window.location).searchParams.get('history') || false + ) const [slider, setSlider] = useState(playback ? 143 : 9); useEffect(() => { - const fetchImages = async () => { - const res = await fetch(`${IMAGES_BASE_URL}/imgs.json`); - const imgs = await res.json(); - setImages(imgs["280"]); - }; + const fetchImages = async () => setImages(await ( + fetch(`${IMAGES_BASE_URL}/imgs.json`) + .then(res => res.json()) + .then(imgs => imgs['280']) + )) + - const buildPlayback = async () => { - const date = 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`)), - [] - ); - setImages(paths); - }; + const buildPlayback = async () => setImages( + Array(24) + .fill([0,1,2,3,4,5]) + .flatMap((m, h) => + m.map((_, m) => `imgs/${playback}/${h<10?`0${h}`:h}${m}0/280.png`) + ) + ) - let timer; - if (playback) buildPlayback(); - else { - fetchImages(); - timer = setInterval(fetchImages, 60 * 1000); - }; + return playback ? + (buildPlayback(), () => void 0) : + (fetchImages(), ((timer) => () => clearTimer(timer))(setInterval(fetchImages, 60 * 1000)) - return () => { - if (timer !== undefined) clearInterval(timer); - } }, [playback]); return ( @@ -67,7 +54,7 @@ function Geshem(props) { - ); + ) } function getGeolocation() { -- cgit v1.3.1 From 72ce0e12fa4d941cb6c1fef417e569ebf1e9173b Mon Sep 17 00:00:00 2001 From: Leon Fedotov Date: Thu, 31 Oct 2019 16:54:22 +0200 Subject: Update Geshem.js --- src/Geshem.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Geshem.js b/src/Geshem.js index 9f4abfd..d30ad61 100644 --- a/src/Geshem.js +++ b/src/Geshem.js @@ -33,20 +33,17 @@ function Geshem(props) { .then(imgs => imgs['280']) )) - const buildPlayback = async () => setImages( - Array(24) - .fill([0,1,2,3,4,5]) - .flatMap((m, h) => - m.map((_, m) => `imgs/${playback}/${h<10?`0${h}`:h}${m}0/280.png`) - ) + Array(24*6) + .fill((i) => `imgs/${playback}/${`${parseInt(i/6, 10)%24}`.padStart(2, '0')}${i%6}0/280.png`) + .map((f,i) => f(i)) ) - + return playback ? (buildPlayback(), () => void 0) : (fetchImages(), ((timer) => () => clearTimer(timer))(setInterval(fetchImages, 60 * 1000)) - }, [playback]); + }, [playback]) return ( <> -- cgit v1.3.1 From e7ffcb761ea3cded8d8106a4282cbffdf4763988 Mon Sep 17 00:00:00 2001 From: Leon Fedotov Date: Thu, 31 Oct 2019 17:29:32 +0200 Subject: Update Geshem.js --- src/Geshem.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Geshem.js b/src/Geshem.js index d30ad61..2d46022 100644 --- a/src/Geshem.js +++ b/src/Geshem.js @@ -35,8 +35,8 @@ function Geshem(props) { const buildPlayback = async () => setImages( Array(24*6) - .fill((i) => `imgs/${playback}/${`${parseInt(i/6, 10)%24}`.padStart(2, '0')}${i%6}0/280.png`) - .map((f,i) => f(i)) + .fill('') + .map((_,i) => `imgs/${playback}/${`${parseInt(i/6, 10)%24}`.padStart(2, '0')}${i%6}0/280.png`) ) return playback ? -- cgit v1.3.1 From c647ee0dd2746192c4abb45fa0ea629ac319bcaf Mon Sep 17 00:00:00 2001 From: Leon Fedotov Date: Thu, 31 Oct 2019 17:36:07 +0200 Subject: Update Geshem.js --- src/Geshem.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Geshem.js b/src/Geshem.js index 2d46022..6128f8d 100644 --- a/src/Geshem.js +++ b/src/Geshem.js @@ -27,11 +27,12 @@ function Geshem(props) { const [slider, setSlider] = useState(playback ? 143 : 9); useEffect(() => { - const fetchImages = async () => setImages(await ( + const fetchImages = async () => fetch(`${IMAGES_BASE_URL}/imgs.json`) .then(res => res.json()) .then(imgs => imgs['280']) - )) + .then(setImages) + ) const buildPlayback = async () => setImages( Array(24*6) -- cgit v1.3.1