diff --git a/components/発車時刻表/LED_vidion.js b/components/発車時刻表/LED_vidion.js
index 0f1376c..4609cf3 100644
--- a/components/発車時刻表/LED_vidion.js
+++ b/components/発車時刻表/LED_vidion.js
@@ -6,10 +6,9 @@ import LottieView from "lottie-react-native";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import { customTrainDataDetector } from "../custom-train-data";
import { useInterval } from "../../lib/useInterval";
-import trainList from "../../assets/originData/trainList";
import { objectIsEmpty } from "../../lib/objectIsEmpty";
-import { parseAllTrainDiagram } from "../../lib/parseAllTrainDiagram";
import { getTrainType } from "../../lib/getTrainType";
+import { HeaderConfig } from "../../lib/HeaderConfig";
let diagramData = undefined;
@@ -42,18 +41,9 @@ let diagramData = undefined;
* 9031M サンライズ瀬戸琴平(延長)(臨時?)
* 9062D 四国まんなか千年ものがたり(臨時?)
*/
-export default function LED_vision({
- station,
- navigate,
- setTrainInfo,
- EachTrainInfoAsSR,
-}) {
- const HeaderConfig = {
- headers: {
- referer: "https://train.jr-shikoku.co.jp/sp.html",
- },
- };
- const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
+export default function LED_vision(props) {
+ const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } =
+ props;
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
const [currentTrain, setCurrentTrain] = useState(null); //現在在線中の全列車
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading");
@@ -61,23 +51,6 @@ export default function LED_vision({
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false);
- useEffect(() => {
- //全列車リストを生成する副作用[無条件初回実行]
- fetch(
- "https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia",
- HeaderConfig
- )
- .then((response) => response.text())
- .then((d) => {
- if (d.indexOf("
404 Not Found") != -1) throw Error;
- setTrainDiagram(parseAllTrainDiagram(d));
- })
- .catch((d) => {
- console.log("fallback");
- setTrainDiagram(trainList);
- });
- }, []);
-
useEffect(() => {
// 現在の駅に停車するダイヤを作成する副作用[列車ダイヤと現在駅情報]
if (!trainDiagram) {
@@ -378,7 +351,11 @@ const EachData = ({
/>
-
+
{trainDescriptionSwitch && !!train.info && (
@@ -451,7 +428,7 @@ const checkDuplicateTrainData = (currentTrainArray) => {
else return notNyujoData[0];
};
-const StatusAndDelay = ({ currentTrain, train }) => {
+const StatusAndDelay = ({ currentTrain, train, station }) => {
// 土讃線複数存在対策
const getTrainDelayStatus = (current) => {
if (!current) return () => {};
diff --git a/lib/HeaderConfig.js b/lib/HeaderConfig.js
new file mode 100644
index 0000000..f4812b5
--- /dev/null
+++ b/lib/HeaderConfig.js
@@ -0,0 +1,5 @@
+export const HeaderConfig = {
+ headers: {
+ referer: "https://train.jr-shikoku.co.jp/sp.html",
+ },
+};
diff --git a/lib/getStationList.js b/lib/getStationList.js
index 077751b..f1314de 100644
--- a/lib/getStationList.js
+++ b/lib/getStationList.js
@@ -33,11 +33,6 @@ export const lineList = [
export const getStationList = async (props) => {
if (status) return status;
//駅リストイニシャライズ
- const HeaderConfig = {
- headers: {
- referer: "https://train.jr-shikoku.co.jp/sp.html",
- },
- };
return await Promise.all([
yosan,
uwajima,
diff --git a/lib/getTrainType.js b/lib/getTrainType.js
index e026863..2f19ea3 100644
--- a/lib/getTrainType.js
+++ b/lib/getTrainType.js
@@ -1,5 +1,5 @@
-export const getTrainType = (data) => {
- switch (data) {
+export const getTrainType = (nameString) => {
+ switch (nameString) {
case "Rapid":
return { color: "aqua", name: "快速", data: "rapid" };
case "LTDEXP":
diff --git a/menu.js b/menu.js
index 561fb59..e41d917 100644
--- a/menu.js
+++ b/menu.js
@@ -25,6 +25,8 @@ import {
} from "@expo/vector-icons";
import LottieView from "lottie-react-native";
import { StationDeteilView } from "./components/ActionSheetComponents/StationDeteilView";
+import { parseAllTrainDiagram } from "./lib/parseAllTrainDiagram";
+import trainList from "./assets/originData/trainList";
import LED_vision from "./components/発車時刻表/LED_vidion";
import Sign from "./components/駅名表/Sign";
@@ -36,6 +38,7 @@ import { getStationList, lineList } from "./lib/getStationList";
import { JRSTraInfo } from "./components/ActionSheetComponents/JRSTraInfo";
import { EachTrainInfo } from "./components/ActionSheetComponents/EachTrainInfo";
import useInterval from "./lib/useInterval";
+import { HeaderConfig } from "./lib/HeaderConfig";
export default function Menu(props) {
const {
@@ -150,6 +153,25 @@ export default function Menu(props) {
}
}, [selectedCurrentStation]);
+ //全列車ダイヤリストを作成するuseEffect
+ const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
+ useEffect(() => {
+ //全列車リストを生成する副作用[無条件初回実行]
+ fetch(
+ "https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia",
+ HeaderConfig
+ )
+ .then((response) => response.text())
+ .then((d) => {
+ if (d.indexOf("404 Not Found") != -1) throw Error;
+ setTrainDiagram(parseAllTrainDiagram(d));
+ })
+ .catch((d) => {
+ console.log("fallback");
+ setTrainDiagram(trainList);
+ });
+ }, []);
+
const openStationACFromEachTrainInfo = (stationName) => {
// EachTrainInfoAsSR.current?.hide();
// const findStationEachLine = (selectLine) => {
@@ -226,6 +248,7 @@ export default function Menu(props) {
navigate={navigate}
setTrainInfo={setTrainInfo}
EachTrainInfoAsSR={EachTrainInfoAsSR}
+ trainDiagram={trainDiagram}
/>
)}