diff --git a/App.js b/App.js
index ddd4afe..ded91f4 100644
--- a/App.js
+++ b/App.js
@@ -34,13 +34,13 @@ export default function App() {
useEffect(() => UpdateAsync(), []);
const ProviderTree = buildProvidersTree([
+ AllTrainDiagramProvider,
NotificationProvider,
StationListProvider,
FavoriteStationProvider,
TrainDelayDataProvider,
CurrentTrainProvider,
AreaInfoProvider,
- AllTrainDiagramProvider,
BusAndTrainDataProvider,
TrainMenuProvider,
SheetProvider,
diff --git a/assets/originData/trainList.ts b/assets/originData/trainList.ts
index 28bf2a4..07bb931 100644
--- a/assets/originData/trainList.ts
+++ b/assets/originData/trainList.ts
@@ -921,15 +921,4 @@
"581D":"徳島,発,20:30#阿波富田,発,20:33#二軒屋,発,20:36#文化の森,発,20:39#地蔵橋,発,20:42#中田,発,20:47#南小松島,発,20:51#阿波赤石,発,20:55#立江,発,20:58#羽ノ浦,発,21:07#西原,発,21:10#阿波中島,発,21:14#阿南,着,21:18#",
"583D":"徳島,発,21:30#阿波富田,発,21:33#二軒屋,発,21:36#文化の森,発,21:38#地蔵橋,発,21:42#中田,発,21:46#南小松島,発,21:50#阿波赤石,発,21:54#立江,発,21:57#羽ノ浦,発,22:14#西原,発,22:17#阿波中島,発,22:20#阿南,発,22:26#見能林,発,22:29#阿波橘,発,22:32#桑野,発,22:37#新野,発,22:41#阿波福井,発,22:45#由岐,発,22:54#木岐,発,22:58#北河内,発,23:03#日和佐,発,23:06#山河内,発,23:14#辺川,発,23:23#牟岐,着,23:29#",
"585D":"徳島,発,22:55#阿波富田,発,22:58#二軒屋,発,23:01#文化の森,発,23:03#地蔵橋,発,23:07#中田,発,23:11#南小松島,発,23:15#阿波赤石,発,23:19#立江,発,23:22#羽ノ浦,発,23:26#西原,発,23:29#阿波中島,発,23:32#阿南,着,23:36#",
-
-// 臨時列車
-"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
-"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
-
-// わらぐろ号/れんげ号
-"9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
-"9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
-"9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
-"9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
-
}
\ No newline at end of file
diff --git a/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js b/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js
index c0a82f7..ea8e121 100644
--- a/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js
+++ b/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js
@@ -1,13 +1,14 @@
import { Text, TouchableOpacity } from "react-native";
import React, { useState } from "react";
+import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
export const ShowSpecialTrain = ({
isTrainDataNothing,
setTrainData,
- trainList,
trueTrainID,
}) => {
+ const { allTrainDiagram } = useAllTrainDiagram();
const replaceSpecialTrainDetail = (trainNum) => {
- let TD = trainList[trainNum];
+ let TD = allTrainDiagram[trainNum];
if (!TD) return;
setTrainData(TD.split("#").filter((d) => d != ""));
};
diff --git a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
index 36c685c..120af56 100644
--- a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
+++ b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
import { View, TouchableOpacity, useWindowDimensions } from "react-native";
import { StateBox } from "./StateBox";
import { useDeviceOrientationChange } from "../../../stateBox/useDeviceOrientationChange";
-import { getStationList2 } from "../../../lib/getStationList2";
+import { getStationList2 } from "../../../lib/getStationList";
import { useCurrentTrain } from "../../../stateBox/useCurrentTrain";
import { SheetManager } from "react-native-actions-sheet";
import { trainPosition } from "../../../lib/trainPositionTextArray";
diff --git a/components/ActionSheetComponents/EachTrainInfoCore.js b/components/ActionSheetComponents/EachTrainInfoCore.js
index d837113..c419bb7 100644
--- a/components/ActionSheetComponents/EachTrainInfoCore.js
+++ b/components/ActionSheetComponents/EachTrainInfoCore.js
@@ -12,8 +12,7 @@ import {
import { SheetManager } from "react-native-actions-sheet";
import { useScrollHandlers } from "react-native-actions-sheet";
import { AS } from "../../storageControl";
-import trainList from "../../assets/originData/trainList";
-import { lineListPair } from "../../lib/getStationList";
+import { lineListPair, stationIDPair } from "../../lib/getStationList";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
import { getTrainType } from "../../lib/getTrainType";
@@ -34,7 +33,7 @@ import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
import { HeaderText } from "./EachTrainInfoCore/HeaderText";
import { useStationList } from "../../stateBox/useStationList";
-import { stationIDPair } from "../../lib/getStationList2";
+import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
export const EachTrainInfoCore = ({
actionSheetRef,
@@ -45,6 +44,7 @@ export const EachTrainInfoCore = ({
}) => {
const { currentTrain } = useCurrentTrain();
const { originalStationList, stationList } = useStationList();
+ const { allTrainDiagram: trainList } = useAllTrainDiagram();
const { setTrainInfo } = useTrainMenu();
const [currentTrainData, setCurrentTrainData] = useState();
@@ -215,9 +215,8 @@ export const EachTrainInfoCore = ({
if (!data.trainNum) return;
const NearTrainList = getInfluencedTrainData(data.trainNum);
if (NearTrainList.length == 0) return;
- const returnArray = NearTrainList.map((d) => d.id);
const TDArray = NearTrainList.map((d) => d.TrainData);
- setNearTrainIDList(returnArray);
+ setNearTrainIDList(NearTrainList.map((d) => d.id));
if (trainData.length == 0) return;
if (TDArray.length == 0) return;
let head = [];
@@ -241,10 +240,8 @@ export const EachTrainInfoCore = ({
}
})
);
- if (head) setHeadStation(head);
- else setHeadStation([]);
- if (tail) setTailStation(tail);
- else setTailStation([]);
+ setHeadStation(head || []);
+ setTailStation(tail || []);
}, [trainData, data]);
useEffect(() => {
@@ -390,7 +387,6 @@ export const EachTrainInfoCore = ({
{!trainData.length && (
diff --git a/components/ActionSheetComponents/TrainMenuLineSelector.js b/components/ActionSheetComponents/TrainMenuLineSelector.js
index 5b45c5b..9d2541f 100644
--- a/components/ActionSheetComponents/TrainMenuLineSelector.js
+++ b/components/ActionSheetComponents/TrainMenuLineSelector.js
@@ -11,8 +11,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
import lineColorList from "../../assets/originData/lineColorList";
-import { stationIDPair } from "../../lib/getStationList2";
-import { lineListPair } from "../../lib/getStationList";
+import { stationIDPair, lineListPair } from "../../lib/getStationList";
export const TrainMenuLineSelector = () => {
const {
@@ -20,7 +19,7 @@ export const TrainMenuLineSelector = () => {
setSelectedLine,
mapsStationData: stationData,
} = useTrainMenu();
- const { webview } = useCurrentTrain();
+ const { webview } = useCurrentTrain();
const actionSheetRef = useRef(null);
const insets = useSafeAreaInsets();
const platformIs = Platform.OS == "android";
@@ -55,7 +54,7 @@ export const TrainMenuLineSelector = () => {
onPress={() => {
SheetManager.hide("TrainMenuLineSelector");
const s = selectedLine == d ? undefined : d;
- if(!s) return;
+ if (!s) return;
setSelectedLine(s);
Object.keys(stationData).forEach((data, indexBase) => {
stationData[data].forEach((D, index) => {
@@ -66,7 +65,7 @@ export const TrainMenuLineSelector = () => {
""
).split(",");
if (latlng.length == 0) return null;
- if (index == 0 ) {
+ if (index == 0) {
webview.current
?.injectJavaScript(`MoveDisplayStation('${data}_${D.MyStation}_${D.Station_JP}');
document.getElementById("disp").insertAdjacentHTML("afterbegin", "
");`);
diff --git a/components/Apps/WebView.jsx b/components/Apps/WebView.jsx
index 468bd48..28e19dc 100644
--- a/components/Apps/WebView.jsx
+++ b/components/Apps/WebView.jsx
@@ -2,7 +2,7 @@ import React from "react";
import { Platform, LayoutAnimation } from "react-native";
import { WebView } from "react-native-webview";
-import { lineList } from "../../lib/getStationList";
+import { lineList, stationNamePair } from "../../lib/getStationList";
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
import { useFavoriteStation } from "../../stateBox/useFavoriteStation";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
@@ -11,7 +11,6 @@ import { SheetManager } from "react-native-actions-sheet";
import { useNavigation } from "@react-navigation/native";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
-import { stationNamePair } from "../../lib/getStationList2";
import { useStationList } from "../../stateBox/useStationList";
export const AppsWebView = ({ openStationACFromEachTrainInfo }) => {
const { webview, currentTrain } = useCurrentTrain();
diff --git a/components/DynamicHeaderScrollView.js b/components/DynamicHeaderScrollView.js
index d4dda44..0e31d16 100644
--- a/components/DynamicHeaderScrollView.js
+++ b/components/DynamicHeaderScrollView.js
@@ -6,7 +6,6 @@ import { AS } from "../storageControl";
export const DynamicHeaderScrollView = (props) => {
const {
children,
- actionSheetRef = {},
containerProps = {},
shortHeader = <>>,
longHeader = <>>,
diff --git a/components/trainMenu.js b/components/trainMenu.js
index 954a5cd..fa05fed 100644
--- a/components/trainMenu.js
+++ b/components/trainMenu.js
@@ -4,8 +4,7 @@ import MapView from "react-native-maps";
import { useCurrentTrain } from "../stateBox/useCurrentTrain";
import { useNavigation } from "@react-navigation/native";
import lineColorList from "../assets/originData/lineColorList";
-import { stationIDPair } from "../lib/getStationList2";
-import { lineListPair } from "../lib/getStationList";
+import { lineListPair, stationIDPair } from "../lib/getStationList";
import { SheetManager } from "react-native-actions-sheet";
import { useTrainMenu } from "../stateBox/useTrainMenu";
import { MapPin } from "./TrainMenu/MapPin";
diff --git a/components/trainMenu.web.js b/components/trainMenu.web.js
index 0835101..47372cd 100644
--- a/components/trainMenu.web.js
+++ b/components/trainMenu.web.js
@@ -4,8 +4,7 @@ import { View, Text, TouchableOpacity, Linking } from "react-native";
import { useCurrentTrain } from "../stateBox/useCurrentTrain";
import { useNavigation } from "@react-navigation/native";
import lineColorList from "../assets/originData/lineColorList";
-import { stationIDPair } from "../lib/getStationList2";
-import { lineListPair } from "../lib/getStationList";
+import { lineListPair, stationIDPair } from "../lib/getStationList";
import { SheetManager } from "react-native-actions-sheet";
import { useTrainMenu } from "../stateBox/useTrainMenu";
//import { MapPin } from "./TrainMenu/MapPin";
diff --git a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
index e53e8ef..5f830a0 100644
--- a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
+++ b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
@@ -5,7 +5,6 @@ import {
trainDataType,
trainPosition,
} from "../../../lib/trainPositionTextArray";
-import { lineList } from "../../../lib/getStationList";
import { getStationID } from "../../../lib/eachTrainInfoCoreLib/getStationData";
import { useCurrentTrain } from "../../../stateBox/useCurrentTrain";
diff --git a/lib/checkDuplicateTrainData.ts b/lib/checkDuplicateTrainData.ts
index 3e2e3b5..8a1c33a 100644
--- a/lib/checkDuplicateTrainData.ts
+++ b/lib/checkDuplicateTrainData.ts
@@ -1,6 +1,5 @@
import { trainDataType } from "./trainPositionTextArray";
-import { getStationID } from "./eachTrainInfoCoreLib/getStationData";
-import { stationIDPair } from "../lib/getStationList2";
+import { stationIDPair } from "../lib/getStationList";
export const checkDuplicateTrainData = (
currentTrainArray: trainDataType[],
diff --git a/lib/getStationList.ts b/lib/getStationList.ts
index 76a3bf5..1a851f3 100644
--- a/lib/getStationList.ts
+++ b/lib/getStationList.ts
@@ -40,6 +40,41 @@ export const lineListPair = {
N: "鳴門線(池谷-鳴門間)[N]",
M: "瀬戸大橋線(児島-宇多津間)[M]",
};
+export const getStationList2 = async () => {
+ return {
+ yosan,
+ uwajima,
+ uwajima2,
+ dosan,
+ dosan2,
+ koutoku,
+ tokushima,
+ naruto,
+ seto,
+ };
+};
+export const stationIDPair = {
+ yosan: "Y",
+ uwajima: "U",
+ uwajima2: "S",
+ dosan: "D",
+ dosan2: "K",
+ koutoku: "T",
+ tokushima: "B",
+ naruto: "N",
+ seto: "M",
+};
+export const stationNamePair = {
+ "予讃線(高松 - 松山)": "yosan",
+ "予讃線・内子線(松山 - 内子 - 宇和島)": "uwajima",
+ "予讃線・伊予灘線(向井原 - 伊予大洲)": "uwajima2",
+ "土讃線(多度津 - 高知)": "dosan",
+ "土讃線(高知 - 窪川)": "dosan2",
+ "高徳線(高松 - 徳島)": "koutoku",
+ "徳島線(徳島 - 阿波池田)": "tokushima",
+ "鳴門線(池谷 - 鳴門)": "naruto",
+ "瀬戸大橋線(児島 - 宇多津)": "seto",
+};
export const getStationList = async () => {
if (status) return status;
diff --git a/lib/getStationList2.ts b/lib/getStationList2.ts
deleted file mode 100644
index 6d5bb5c..0000000
--- a/lib/getStationList2.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import yosan from "../assets/originData/yosan";
-import uwajima from "../assets/originData/uwajima";
-import uwajima2 from "../assets/originData/uwajima2";
-import dosan from "../assets/originData/dosan";
-import dosan2 from "../assets/originData/dosan2";
-import koutoku from "../assets/originData/koutoku";
-import tokushima from "../assets/originData/tokushima";
-import naruto from "../assets/originData/naruto";
-import seto from "../assets/originData/seto";
-export const getStationList2 = async () => {
- return {
- yosan,
- uwajima,
- uwajima2,
- dosan,
- dosan2,
- koutoku,
- tokushima,
- naruto,
- seto,
- };
-};
-
-export const stationIDPair = {
- yosan: "Y",
- uwajima: "U",
- uwajima2: "S",
- dosan: "D",
- dosan2: "K",
- koutoku: "T",
- tokushima: "B",
- naruto: "N",
- seto: "M",
-};
-
-export const stationNamePair = {
- "予讃線(高松 - 松山)": "yosan",
- "予讃線・内子線(松山 - 内子 - 宇和島)": "uwajima",
- "予讃線・伊予灘線(向井原 - 伊予大洲)": "uwajima2",
- "土讃線(多度津 - 高知)": "dosan",
- "土讃線(高知 - 窪川)": "dosan2",
- "高徳線(高松 - 徳島)": "koutoku",
- "徳島線(徳島 - 阿波池田)": "tokushima",
- "鳴門線(池谷 - 鳴門)": "naruto",
- "瀬戸大橋線(児島 - 宇多津)": "seto",
-};
diff --git a/menu.js b/menu.js
index 6a7a888..42a8592 100644
--- a/menu.js
+++ b/menu.js
@@ -17,7 +17,6 @@ import { widthPercentageToDP as wp } from "react-native-responsive-screen";
import { Ionicons } from "@expo/vector-icons";
import LottieView from "lottie-react-native";
import { parseAllTrainDiagram } from "./lib/parseAllTrainDiagram";
-import trainList from "./assets/originData/trainList";
import LED_vision from "./components/発車時刻表/LED_vidion";
import Sign from "./components/駅名表/Sign";
@@ -37,6 +36,7 @@ import { StationNumber } from "./components/Menu/StationPagination";
import lineColorList from "./assets/originData/lineColorList";
import { AS } from "./storageControl";
import { SimpleDot } from "./components/Menu/SimpleDot";
+import { useAllTrainDiagram } from "./stateBox/useAllTrainDiagram";
export default function Menu({ getCurrentTrain }) {
const { navigate } = useNavigation();
@@ -131,11 +131,7 @@ export default function Menu({ getCurrentTrain }) {
}, [selectedCurrentStation]);
//全列車ダイヤリストを作成するuseEffect
- const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
- useEffect(() => {
- //全列車リストを生成する副作用[無条件初回実行]
- setTrainDiagram(trainList);
- }, []);
+ const { allTrainDiagram:trainDiagram} = useAllTrainDiagram();
const oPSign = () => {
const payload = {
diff --git a/stateBox/useAllTrainDiagram.js b/stateBox/useAllTrainDiagram.js
index fd00af2..4f8b589 100644
--- a/stateBox/useAllTrainDiagram.js
+++ b/stateBox/useAllTrainDiagram.js
@@ -1,3 +1,5 @@
+import trainList from "@/assets/originData/trainList";
+import { AS } from "@/storageControl";
import React, { createContext, useContext, useEffect, useState } from "react";
const initialState = {
allTrainDiagram: undefined,
@@ -9,24 +11,14 @@ const AllTrainDiagramContext = createContext(initialState);
export const useAllTrainDiagram = () => useContext(AllTrainDiagramContext);
export const AllTrainDiagramProvider = ({ children }) => {
- const [allTrainDiagram, setAllTrainDiagram] = useState();
+ const [allTrainDiagram, setAllTrainDiagram] = useState(trainList);
const [keyList, setKeyList] = useState(); // 第二要素
useEffect(
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
[allTrainDiagram]
);
- const customData = {
- "9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
- "9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
- "9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
- "9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
- "9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
- "9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
- };
useEffect(() => {
- fetch(
- "https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
- )
+ fetch("https://n8n.haruk.in/webhook/JR-shikoku-diagram-migrate-original")
.then((res) => res.json())
.then((res) => res.data)
.then((res) => {
@@ -38,34 +30,21 @@ export const AllTrainDiagramProvider = ({ children }) => {
return data;
})
.then((res) => {
- Object.assign(res, customData);
setAllTrainDiagram(res);
+ AS.setItem("allTrainDiagram", JSON.stringify(res));
})
.catch((d) => {
- alert("allTrainDiagram取得エラー/再取得します");
- alert(d);
- fetch(
- "https://script.google.com/macros/s/AKfycbx_s7RB-xTy-iAslFJg7LfplLV09-hjDXEjdi9kCP_JT45wq17Af_IPOKIOqIfaNDg/exec"
- )
- .then((res) => res.json())
- .then((res) => {
- const data = {};
- res.forEach((d) => {
- const keys = Object.keys(d);
- data[keys] = d[keys];
- });
- return data;
- })
- .then((res) => {
- Object.assign(res, customData);
- setAllTrainDiagram(res);
+ AS.getItem("allTrainDiagram")
+ .then((d) => setAllTrainDiagram(JSON.parse(d)))
+ .catch(() => {
+ alert("初回の路線情報の取得に失敗しました。");
});
});
}, []);
return (
{children}
diff --git a/stateBox/useBusAndTrainData.js b/stateBox/useBusAndTrainData.js
index e29d3f6..692913b 100644
--- a/stateBox/useBusAndTrainData.js
+++ b/stateBox/useBusAndTrainData.js
@@ -1,6 +1,6 @@
import React, { createContext, useContext, useState, useEffect } from "react";
-import trainList from "../assets/originData/trainList";
import { AS } from "../storageControl";
+import { useAllTrainDiagram } from "./useAllTrainDiagram";
const initialState = {
busAndTrainData: [],
setBusAndTrainData: () => {},
@@ -17,6 +17,7 @@ export const useBusAndTrainData = () => {
};
export const BusAndTrainDataProvider = ({ children }) => {
+ const { allTrainDiagram } = useAllTrainDiagram();
const [busAndTrainData, setBusAndTrainData] = useState([]);
const [trainPairData, setTrainPairData] = useState([]);
useEffect(() => {
@@ -79,7 +80,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
case "139M":
returnArray.push("143M");
break;
- // 土讃線琴平界隈
+ // 土讃線琴平界隈
case "1263M":
returnArray.push("4263M");
break;
@@ -130,7 +131,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
case "484D":
returnArray.push("583D");
break;
- // reverse.
+ // reverse.
case "525D":
returnArray.push("4430D");
break;
@@ -173,7 +174,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
case "583D":
returnArray.push("484D");
break;
- //上り
+ //上り
case "4520D":
returnArray.push("4314D");
break;
@@ -215,7 +216,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
break;
case "564D":
returnArray.push("475D");
- break;
+ break;
case "568D":
returnArray.push("5479D");
break;
@@ -225,7 +226,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
case "576D":
returnArray.push("4368D");
break;
- // reverse.
+ // reverse.
case "4314D":
returnArray.push("4520D");
break;
@@ -278,12 +279,12 @@ export const BusAndTrainDataProvider = ({ children }) => {
returnArray.push("576D");
break;
}
- if(new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum)){
- if (trainList["5" + trainNum.substring(1)])
+ if (new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum)) {
+ if (allTrainDiagram["5" + trainNum.substring(1)])
returnArray.push("5" + trainNum.substring(1));
}
- if(new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)){
- if (trainList["4" + trainNum.substring(1)])
+ if (new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)) {
+ if (allTrainDiagram["4" + trainNum.substring(1)])
returnArray.push("4" + trainNum.substring(1));
}
if (
@@ -291,22 +292,24 @@ export const BusAndTrainDataProvider = ({ children }) => {
new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum) ||
new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)
) {
- if (trainList[trainNum.substring(1)]) {
+ if (allTrainDiagram[trainNum.substring(1)]) {
returnArray.push(trainNum.substring(1));
}
}
if (new RegExp(/^[1-9]\d\d[DM]$/).test(trainNum)) {
// 列番がxxDの場合は4xxDと5xxDの列番を検索
- if (trainList["4" + trainNum]) returnArray.push("4" + trainNum);
- if (trainList["5" + trainNum]) returnArray.push("5" + trainNum);
+ if (allTrainDiagram["4" + trainNum]) returnArray.push("4" + trainNum);
+ if (allTrainDiagram["5" + trainNum]) returnArray.push("5" + trainNum);
}
if (!returnArray.length) return [];
- const TDArray = returnArray.filter(d => trainList.hasOwnProperty(d)).map((d) => {
- const TD = trainList[d];
- if (!TD) return;
- return { id: d, TrainData: TD.split("#").filter((d) => d != "") };
- });
+ const TDArray = returnArray
+ .filter((d) => allTrainDiagram.hasOwnProperty(d))
+ .map((d) => {
+ const TD = allTrainDiagram[d];
+ if (!TD) return;
+ return { id: d, TrainData: TD.split("#").filter((d) => d != "") };
+ });
return TDArray;
};
return (
diff --git a/stateBox/useStationList.tsx b/stateBox/useStationList.tsx
index c064c12..f718064 100644
--- a/stateBox/useStationList.tsx
+++ b/stateBox/useStationList.tsx
@@ -5,8 +5,7 @@ import React, {
useEffect,
FC,
} from "react";
-import { getStationList } from "../lib/getStationList";
-import { lineList } from "../lib/getStationList";
+import { lineList, getStationList } from "../lib/getStationList";
type initialStateType = {
originalStationList: any[][];
diff --git a/stateBox/useTrainMenu.js b/stateBox/useTrainMenu.js
index 8fcf424..cb5925e 100644
--- a/stateBox/useTrainMenu.js
+++ b/stateBox/useTrainMenu.js
@@ -2,7 +2,7 @@ import React, { createContext, useContext, useState, useEffect } from "react";
import { ASCore } from "../storageControl";
-import { getStationList2 } from "../lib/getStationList2";
+import { getStationList2 } from "../lib/getStationList";
import { injectJavascriptData } from "../lib/webViewInjectjavascript";
const initialState = {