データの整理と最適化ミスの修正
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 React, { useEffect } from "react";
|
||||||
import { NavigationContainer } from "@react-navigation/native";
|
import { NavigationContainer } from "@react-navigation/native";
|
||||||
import { createStackNavigator } from "@react-navigation/stack";
|
|
||||||
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
|
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
|
||||||
import { Platform, UIManager } from "react-native";
|
import { Platform, UIManager } from "react-native";
|
||||||
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
||||||
import { UpdateAsync } from "./UpdateAsync.js";
|
import { UpdateAsync } from "./UpdateAsync.js";
|
||||||
import { AS } from "./storageControl";
|
|
||||||
import TNDView from "./ndView";
|
import TNDView from "./ndView";
|
||||||
import { LogBox } from "react-native";
|
import { LogBox } from "react-native";
|
||||||
import useInterval from "./lib/useInterval";
|
|
||||||
import { HeaderConfig } from "./lib/HeaderConfig";
|
|
||||||
import { initIcon } from "./lib/initIcon";
|
import { initIcon } from "./lib/initIcon";
|
||||||
import {
|
import { FavoriteStationProvider } from "./stateBox/useFavoriteStation";
|
||||||
useFavoriteStation,
|
|
||||||
FavoriteStationProvider,
|
|
||||||
} from "./stateBox/useFavoriteStation";
|
|
||||||
import { Top } from "./Top.js";
|
import { Top } from "./Top.js";
|
||||||
import { MenuPage } from "./MenuPage.js";
|
import { MenuPage } from "./MenuPage.js";
|
||||||
import {
|
import { CurrentTrainProvider } from "./stateBox/useCurrentTrain.js";
|
||||||
useCurrentTrain,
|
|
||||||
CurrentTrainProvider,
|
|
||||||
} from "./stateBox/useCurrentTrain.js";
|
|
||||||
import { useAreaInfo, AreaInfoProvider } from "./stateBox/useAreaInfo.js";
|
import { useAreaInfo, AreaInfoProvider } from "./stateBox/useAreaInfo.js";
|
||||||
import {
|
import { BusAndTrainDataProvider } from "./stateBox/useBusAndTrainData.js";
|
||||||
useBusAndTrainData,
|
|
||||||
BusAndTrainDataProvider,
|
|
||||||
} from "./stateBox/useBusAndTrainData.js";
|
|
||||||
import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram.js";
|
import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram.js";
|
||||||
import { SheetProvider } from "react-native-actions-sheet";
|
import { SheetProvider } from "react-native-actions-sheet";
|
||||||
import "./components/ActionSheetComponents/sheets.js";
|
import "./components/ActionSheetComponents/sheets.js";
|
||||||
@ -67,51 +54,7 @@ export default function App() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
export function AppContainer() {
|
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 { 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 (
|
return (
|
||||||
<NavigationContainer name="Root" style={{ flex: 1 }}>
|
<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={15} text={data[0].replace("\n", "")} />
|
||||||
<FlexText flex={5} text={data[1]} />
|
<FlexText flex={5} text={data[1]} />
|
||||||
<FlexText flex={6} text={data[2]} />
|
<FlexText flex={6} text={data[3]} />
|
||||||
</FlexWidget>
|
</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 = {
|
const initialState = {
|
||||||
areaInfo: "",
|
areaInfo: "",
|
||||||
setAreainfo: () => {},
|
setAreainfo: () => {},
|
||||||
@ -12,7 +13,14 @@ export const useAreaInfo = () => {
|
|||||||
|
|
||||||
export const AreaInfoProvider = ({ children }) => {
|
export const AreaInfoProvider = ({ children }) => {
|
||||||
const [areaInfo, setAreaInfo] = useState("");
|
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 (
|
return (
|
||||||
<AreaInfoContext.Provider value={{ areaInfo, setAreaInfo }}>
|
<AreaInfoContext.Provider value={{ areaInfo, setAreaInfo }}>
|
||||||
{children}
|
{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 trainList from "../assets/originData/trainList";
|
||||||
|
import { AS } from "../storageControl";
|
||||||
const initialState = {
|
const initialState = {
|
||||||
busAndTrainData: [],
|
busAndTrainData: [],
|
||||||
setBusAndTrainData: () => {},
|
setBusAndTrainData: () => {},
|
||||||
@ -18,6 +19,40 @@ export const useBusAndTrainData = () => {
|
|||||||
export const BusAndTrainDataProvider = ({ children }) => {
|
export const BusAndTrainDataProvider = ({ children }) => {
|
||||||
const [busAndTrainData, setBusAndTrainData] = useState([]);
|
const [busAndTrainData, setBusAndTrainData] = useState([]);
|
||||||
const [trainPairData, setTrainPairData] = 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 initializeTrainPairList = () => {
|
||||||
const trainPairList = {};
|
const trainPairList = {};
|
||||||
trainPairData.forEach((d) => {
|
trainPairData.forEach((d) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user