データ分離
This commit is contained in:
@@ -1,4 +1,11 @@
|
||||
import React, { createContext, useContext, useState } from "react";
|
||||
import React, { createContext, useContext, useState, useEffect } from "react";
|
||||
|
||||
import { AS, ASCore } from "../storageControl";
|
||||
|
||||
import { getStationList } from "../lib/getStationList";
|
||||
import { getStationList2 } from "../lib/getStationList2";
|
||||
import { injectJavascriptData } from "../lib/webViewInjectjavascript";
|
||||
|
||||
const initialState = {
|
||||
selectedLine: undefined,
|
||||
setSelectedLine: () => {},
|
||||
@@ -6,6 +13,25 @@ const initialState = {
|
||||
setMapsStationData: () => {},
|
||||
injectJavaScript: "",
|
||||
setInjectJavaScript: () => {},
|
||||
iconSetting: undefined,
|
||||
setIconSetting: () => {},
|
||||
mapSwitch: undefined,
|
||||
setMapSwitch: () => {},
|
||||
stationMenu: undefined,
|
||||
setStationMenu: () => {},
|
||||
LoadError: false,
|
||||
setLoadError: () => {},
|
||||
trainInfo: {
|
||||
trainNum: undefined,
|
||||
limited: undefined,
|
||||
trainData: undefined,
|
||||
},
|
||||
setTrainInfo: () => {},
|
||||
originalStationList: undefined,
|
||||
setOriginalStationList: () => {},
|
||||
trainMenu: "true",
|
||||
setTrainMenu: () => {},
|
||||
injectJavascript: "",
|
||||
};
|
||||
|
||||
const TrainMenuContext = createContext(initialState);
|
||||
@@ -19,6 +45,54 @@ export const TrainMenuProvider = ({ children }) => {
|
||||
const [mapsStationData, setMapsStationData] = useState(undefined);
|
||||
const [injectJavaScript, setInjectJavaScript] = useState();
|
||||
|
||||
useEffect(() => getStationList2().then(setMapsStationData), []);
|
||||
|
||||
//画面表示関連
|
||||
const [iconSetting, setIconSetting] = useState(undefined);
|
||||
const [mapSwitch, setMapSwitch] = useState(undefined);
|
||||
const [stationMenu, setStationMenu] = useState(undefined);
|
||||
const [LoadError, setLoadError] = useState(false);
|
||||
|
||||
//列車情報表示関連
|
||||
const [trainInfo, setTrainInfo] = useState({
|
||||
trainNum: undefined,
|
||||
limited: undefined,
|
||||
trainData: undefined,
|
||||
});
|
||||
|
||||
//駅情報画面用
|
||||
const [originalStationList, setOriginalStationList] = useState();
|
||||
const [trainMenu, setTrainMenu] = useState("true");
|
||||
useEffect(() => getStationList().then(setOriginalStationList), []);
|
||||
|
||||
//地図表示テキスト
|
||||
const injectJavascript = injectJavascriptData(
|
||||
mapSwitch,
|
||||
iconSetting,
|
||||
stationMenu,
|
||||
trainMenu
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
//ニュース表示
|
||||
AS.getItem("status")
|
||||
.then((d) => {
|
||||
if (d != news) navigate("news");
|
||||
})
|
||||
.catch(() => navigate("news"));
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
//列車アイコンスイッチ
|
||||
ASCore({ k: "iconSwitch", s: setIconSetting, d: "true", u: true });
|
||||
//地図スイッチ
|
||||
ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false", u: true });
|
||||
//駅メニュースイッチ
|
||||
ASCore({ k: "stationSwitch", s: setStationMenu, d: "true", u: true });
|
||||
//列車メニュースイッチ
|
||||
ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true", u: true });
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<TrainMenuContext.Provider
|
||||
value={{
|
||||
@@ -28,6 +102,22 @@ export const TrainMenuProvider = ({ children }) => {
|
||||
setMapsStationData,
|
||||
injectJavaScript,
|
||||
setInjectJavaScript,
|
||||
|
||||
iconSetting,
|
||||
setIconSetting,
|
||||
mapSwitch,
|
||||
setMapSwitch,
|
||||
stationMenu,
|
||||
setStationMenu,
|
||||
LoadError,
|
||||
setLoadError,
|
||||
trainInfo,
|
||||
setTrainInfo,
|
||||
originalStationList,
|
||||
setOriginalStationList,
|
||||
trainMenu,
|
||||
setTrainMenu,
|
||||
injectJavascript,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
|
Reference in New Issue
Block a user