From d6f727710fa3ddcc99fc836ce20a918afe2b5b2b Mon Sep 17 00:00:00 2001 From: harukin-OneMix4 Date: Thu, 14 Dec 2023 21:05:51 +0900 Subject: [PATCH] =?UTF-8?q?LED=E3=81=AB=E9=81=8B=E8=A1=8C=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 6 ++-- components/発車時刻表/LED_vidion.js | 38 +++++++++++++++++++++++- menu.js | 2 ++ 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/App.js b/App.js index cc51d54..fd534fb 100644 --- a/App.js +++ b/App.js @@ -69,7 +69,7 @@ export default function App() { const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 } const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading - + const getCurrentTrain = () => fetch( "https://script.google.com/macros/s/AKfycby9Y2-Bm75J_WkbZimi7iS8v5r9wMa9wtzpdwES9sOGF4i6HIYEJOM60W6gM1gXzt1o/exec", @@ -104,7 +104,6 @@ export default function App() { return ( - {areaInfo != "" && alert(areaInfo)}>{areaInfo}} )} @@ -293,6 +293,7 @@ function MenuPage({ currentTrainState, currentTrainLoadingState, getCurrentTrain, + areaInfo, }) { useEffect(() => { const unsubscribe = navigation.addListener("tabPress", (e) => { @@ -327,6 +328,7 @@ function MenuPage({ currentTrainState={currentTrainState} currentTrainLoadingState={currentTrainLoadingState} getCurrentTrain={getCurrentTrain} + areaInfo={areaInfo} /> )} diff --git a/components/発車時刻表/LED_vidion.js b/components/発車時刻表/LED_vidion.js index 91c586c..cc943bb 100644 --- a/components/発車時刻表/LED_vidion.js +++ b/components/発車時刻表/LED_vidion.js @@ -52,6 +52,7 @@ export default function LED_vision(props) { currentTrainState, currentTrainLoadingState, getCurrentTrain, + areaInfo, } = props; const { currentTrain, setCurrentTrain } = currentTrainState; const { currentTrainLoading, setCurrentTrainLoading } = @@ -149,6 +150,33 @@ export default function LED_vision(props) { return false; }; + const [areaString, setAreaString] = useState(""); + const [areaStringLength, setAreaStringLength] = useState(0); + const [move, setMove] = useState(0); + useInterval( + () => { + if (areaInfo != "") { + if (areaStringLength < move) { + setMove(0); + } else { + setMove(move + 1); + } + } + }, + 350, + true + ); + useEffect(() => { + setAreaString( + areaInfo.substring(move, areaInfo.length) + areaInfo.substring(0, move) + ); + }, [move]); + + useEffect(() => { + if (!areaInfo) return () => {}; + setAreaStringLength(areaInfo.length); + }, [areaInfo]); + return ( ))} + {areaString != "" && ( + + )} +