データの整理と最適化ミスの修正
This commit is contained in:
parent
45b64f28cb
commit
d4c9bdae75
63
App.js
63
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 (
|
||||
<NavigationContainer name="Root" style={{ flex: 1 }}>
|
||||
|
@ -71,7 +71,7 @@ export function TraInfoEXWidget({ time, delayString }) {
|
||||
>
|
||||
<FlexText flex={15} text={data[0].replace("\n", "")} />
|
||||
<FlexText flex={5} text={data[1]} />
|
||||
<FlexText flex={6} text={data[2]} />
|
||||
<FlexText flex={6} text={data[3]} />
|
||||
</FlexWidget>
|
||||
);
|
||||
})
|
||||
|
@ -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 (
|
||||
<AreaInfoContext.Provider value={{ areaInfo, setAreaInfo }}>
|
||||
{children}
|
||||
|
@ -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) => {
|
||||
|
Loading…
Reference in New Issue
Block a user