From d4c9bdae75e56a29e0cc34f49b56adec81a1eaf5 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Sat, 9 Mar 2024 07:03:59 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=81=AE=E6=95=B4?= =?UTF-8?q?=E7=90=86=E3=81=A8=E6=9C=80=E9=81=A9=E5=8C=96=E3=83=9F=E3=82=B9?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 63 +------------------- components/AndroidWidget/TraInfoEXWidget.jsx | 2 +- stateBox/useAreaInfo.js | 12 +++- stateBox/useBusAndTrainData.js | 37 +++++++++++- 4 files changed, 50 insertions(+), 64 deletions(-) diff --git a/App.js b/App.js index d561ab3..a7d0236 100644 --- a/App.js +++ b/App.js @@ -1,31 +1,18 @@ import React, { useEffect } from "react"; import { NavigationContainer } from "@react-navigation/native"; -import { createStackNavigator } from "@react-navigation/stack"; import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; import { Platform, UIManager } from "react-native"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import { UpdateAsync } from "./UpdateAsync.js"; -import { AS } from "./storageControl"; import TNDView from "./ndView"; import { LogBox } from "react-native"; -import useInterval from "./lib/useInterval"; -import { HeaderConfig } from "./lib/HeaderConfig"; import { initIcon } from "./lib/initIcon"; -import { - useFavoriteStation, - FavoriteStationProvider, -} from "./stateBox/useFavoriteStation"; +import { FavoriteStationProvider } from "./stateBox/useFavoriteStation"; import { Top } from "./Top.js"; import { MenuPage } from "./MenuPage.js"; -import { - useCurrentTrain, - CurrentTrainProvider, -} from "./stateBox/useCurrentTrain.js"; +import { CurrentTrainProvider } from "./stateBox/useCurrentTrain.js"; import { useAreaInfo, AreaInfoProvider } from "./stateBox/useAreaInfo.js"; -import { - useBusAndTrainData, - BusAndTrainDataProvider, -} from "./stateBox/useBusAndTrainData.js"; +import { BusAndTrainDataProvider } from "./stateBox/useBusAndTrainData.js"; import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram.js"; import { SheetProvider } from "react-native-actions-sheet"; import "./components/ActionSheetComponents/sheets.js"; @@ -67,51 +54,7 @@ export default function App() { ); } export function AppContainer() { - const { setBusAndTrainData, setTrainPairData } = useBusAndTrainData(); - useEffect(() => { - AS.getItem("busAndTrain") - .then((d) => { - const returnData = JSON.parse(d); - setBusAndTrainData(returnData); - }) - .catch(() => { - fetch( - "https://script.google.com/macros/s/AKfycbw0UW6ZeCDgUYFRP0zxpc_Oqfy-91dBdbWv-cM8n3narKp14IyCd2wy5HW7taXcW7E/exec" - ) - .then((d) => d.json()) - .then((d) => { - setBusAndTrainData(d); - AS.setItem("busAndTrain", JSON.stringify(d)); - }); - }); - }, []); - useEffect(() => { - AS.getItem("trainPairData") - .then((d) => { - const returnData = JSON.parse(d); - setTrainPairData(returnData); - }) - .catch(() => { - fetch( - "https://script.google.com/macros/s/AKfycbyoBH7_rBwzPmhU1ghRBNTAVuvGltIrZtWxE07gDdhGGlDL9Ip2qk3pFM5u2xtRBl8/exec" - ) - .then((d) => d.json()) - .then((d) => { - setTrainPairData(d); - AS.setItem("trainPairData", JSON.stringify(d)); - }); - }); - }, []); - const { areaInfo, setAreaInfo } = useAreaInfo(); - const getAreaData = () => - fetch( - "https://script.google.com/macros/s/AKfycbz80LcaEUrhnlEsLkJy0LG2IRO3DBVQhfNmN1d_0f_HvtsujNQpxM90SrV9yKWH_JG1Ww/exec" - ) - .then((d) => d.text()) - .then((d) => setAreaInfo(d)); - useEffect(getAreaData, []); - useInterval(getAreaData, 60000); //60秒毎に全在線列車取得 return ( diff --git a/components/AndroidWidget/TraInfoEXWidget.jsx b/components/AndroidWidget/TraInfoEXWidget.jsx index 6a8e9e1..d3c7809 100644 --- a/components/AndroidWidget/TraInfoEXWidget.jsx +++ b/components/AndroidWidget/TraInfoEXWidget.jsx @@ -71,7 +71,7 @@ export function TraInfoEXWidget({ time, delayString }) { > - + ); }) diff --git a/stateBox/useAreaInfo.js b/stateBox/useAreaInfo.js index 5158066..a37df6f 100644 --- a/stateBox/useAreaInfo.js +++ b/stateBox/useAreaInfo.js @@ -1,4 +1,5 @@ -import React, { createContext, useContext, useState } from "react"; +import React, { createContext, useContext, useState, useEffect } from "react"; +import useInterval from "../lib/useInterval"; const initialState = { areaInfo: "", setAreainfo: () => {}, @@ -12,7 +13,14 @@ export const useAreaInfo = () => { export const AreaInfoProvider = ({ children }) => { const [areaInfo, setAreaInfo] = useState(""); - + const getAreaData = () => + fetch( + "https://script.google.com/macros/s/AKfycbz80LcaEUrhnlEsLkJy0LG2IRO3DBVQhfNmN1d_0f_HvtsujNQpxM90SrV9yKWH_JG1Ww/exec" + ) + .then((d) => d.text()) + .then((d) => setAreaInfo(d)); + useEffect(getAreaData, []); + useInterval(getAreaData, 60000); //60秒毎に全在線列車取得 return ( {children} diff --git a/stateBox/useBusAndTrainData.js b/stateBox/useBusAndTrainData.js index cbfaf86..6c4c596 100644 --- a/stateBox/useBusAndTrainData.js +++ b/stateBox/useBusAndTrainData.js @@ -1,5 +1,6 @@ -import React, { createContext, useContext, useState } from "react"; +import React, { createContext, useContext, useState, useEffect } from "react"; import trainList from "../assets/originData/trainList"; +import { AS } from "../storageControl"; const initialState = { busAndTrainData: [], setBusAndTrainData: () => {}, @@ -18,6 +19,40 @@ export const useBusAndTrainData = () => { export const BusAndTrainDataProvider = ({ children }) => { const [busAndTrainData, setBusAndTrainData] = useState([]); const [trainPairData, setTrainPairData] = useState([]); + useEffect(() => { + AS.getItem("busAndTrain") + .then((d) => { + const returnData = JSON.parse(d); + setBusAndTrainData(returnData); + }) + .catch(() => { + fetch( + "https://script.google.com/macros/s/AKfycbw0UW6ZeCDgUYFRP0zxpc_Oqfy-91dBdbWv-cM8n3narKp14IyCd2wy5HW7taXcW7E/exec" + ) + .then((d) => d.json()) + .then((d) => { + setBusAndTrainData(d); + AS.setItem("busAndTrain", JSON.stringify(d)); + }); + }); + }, []); + useEffect(() => { + AS.getItem("trainPairData") + .then((d) => { + const returnData = JSON.parse(d); + setTrainPairData(returnData); + }) + .catch(() => { + fetch( + "https://script.google.com/macros/s/AKfycbyoBH7_rBwzPmhU1ghRBNTAVuvGltIrZtWxE07gDdhGGlDL9Ip2qk3pFM5u2xtRBl8/exec" + ) + .then((d) => d.json()) + .then((d) => { + setTrainPairData(d); + AS.setItem("trainPairData", JSON.stringify(d)); + }); + }); + }, []); const initializeTrainPairList = () => { const trainPairList = {}; trainPairData.forEach((d) => {