diff --git a/components/ActionSheetComponents/EachTrainInfo/StateBox.js b/components/ActionSheetComponents/EachTrainInfo/StateBox.js
index c26f41b..3258cc0 100644
--- a/components/ActionSheetComponents/EachTrainInfo/StateBox.js
+++ b/components/ActionSheetComponents/EachTrainInfo/StateBox.js
@@ -17,7 +17,9 @@ export const StateBox = ({ text, title, style, mode }) => (
{text.split("~")[0]}
- ~
+
+ {mode == 2 ? "→" : "↓"}
+
{text.split("~")[1]}
diff --git a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
index 2f0ff15..9781b1d 100644
--- a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
+++ b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
@@ -66,11 +66,11 @@ export const TrainDataView = ({
? `${
currentTrainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
- .split("~")[0]
+ .split("~")[currentTrainData?.Direction == 1 ? 0 : 1]
}~${
currentTrainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
- .split("~")[1]
+ .split("~")[currentTrainData?.Direction == 1 ? 1 : 0]
}`
: currentTrainData?.Pos
}
diff --git a/components/ActionSheetComponents/EachTrainInfoCore.js b/components/ActionSheetComponents/EachTrainInfoCore.js
index 7b693a6..828e66e 100644
--- a/components/ActionSheetComponents/EachTrainInfoCore.js
+++ b/components/ActionSheetComponents/EachTrainInfoCore.js
@@ -7,6 +7,7 @@ import {
StyleSheet,
useWindowDimensions,
BackHandler,
+ Linking,
} from "react-native";
import { Ionicons } from "@expo/vector-icons";
import { SheetManager } from "react-native-actions-sheet";
@@ -25,7 +26,7 @@ import { DynamicHeaderScrollView } from "../DynamicHeaderScrollView";
import { LongHeader } from "./EachTrainInfo/LongHeader";
import { ShortHeader } from "./EachTrainInfo/ShortHeader";
import { ScrollStickyContent } from "./EachTrainInfo/ScrollStickyContent";
-import { getStationData } from "../../lib/eachTrainInfoCoreLib/getStationData";
+import { getStationID } from "../../lib/eachTrainInfoCoreLib/getStationData";
import { findReversalPoints } from "../../lib/eachTrainInfoCoreLib/findReversalPoints";
import { migrateTrainName } from "../../lib/eachTrainInfoCoreLib/migrateTrainName";
import { getType } from "../../lib/eachTrainInfoCoreLib/getType";
@@ -193,12 +194,20 @@ export const EachTrainInfoCore = ({
const pos = currentTrainData?.Pos.replace("(下り)", "")
.replace("(上り)", "")
.split("~");
- setCurrentPosition([
- getStationData(pos[0], stationList),
- getStationData(pos[1], stationList),
- ]);
+ const direction = parseInt(currentTrainData?.Direction) || 0;
+ if (direction == 0) {
+ setCurrentPosition([
+ getStationID(pos[1], stationList),
+ getStationID(pos[0], stationList),
+ ]);
+ } else {
+ setCurrentPosition([
+ getStationID(pos[0], stationList),
+ getStationID(pos[1], stationList),
+ ]);
+ }
} else {
- setCurrentPosition([getStationData(currentTrainData?.Pos, stationList)]);
+ setCurrentPosition([getStationID(currentTrainData?.Pos, stationList)]);
}
}, [currentTrainData]);
@@ -239,6 +248,7 @@ export const EachTrainInfoCore = ({
});
}
};
+
const headerItem = {
currentTrainData,
currentPosition,
@@ -350,6 +360,26 @@ export const EachTrainInfoCore = ({
trainList={trainList}
trueTrainID={trueTrainID}
/>
+ {!trainData.length && (
+
+ Linking.openURL(`https://twitter.com/search?q=${data.trainNum}`)
+ }
+ style={{
+ padding: 10,
+ flexDirection: "row",
+ borderColor: "blue",
+ borderWidth: 1,
+ margin: 10,
+ borderRadius: 5,
+ alignItems: "center",
+ }}
+ >
+
+ Twitterで検索
+
+
+ )}
{trainData.map((i, index) =>
i.split(",")[1] == "提" ? (
diff --git a/components/発車時刻表/LED_vidion.js b/components/発車時刻表/LED_vidion.js
index e34d69f..c7b5596 100644
--- a/components/発車時刻表/LED_vidion.js
+++ b/components/発車時刻表/LED_vidion.js
@@ -164,14 +164,20 @@ export default function LED_vision(props) {
true
);
useEffect(() => {
- if (!areaInfo) return () => {};
+ if (!areaInfo) {
+ setAreaString("");
+ return () => {};
+ }
setAreaString(
areaInfo.substring(move, areaInfo.length) + areaInfo.substring(0, move)
);
}, [move]);
useEffect(() => {
- if (!areaInfo) return () => {};
+ if (!areaInfo) {
+ setAreaStringLength(0);
+ return () => {};
+ }
setAreaStringLength(areaInfo.length);
}, [areaInfo]);
@@ -336,10 +342,24 @@ const EachData = ({
setTrain(customTrainDataDetector(d.train));
}, [currentTrain, d.train, trainDescriptionSwitch]);
// 土讃線複数存在対策
+ const currentTrainData = checkDuplicateTrainData(
+ currentTrain.filter((a) => a.num == d.train)
+ );
const trainDelayStatus = getTrainDelayStatus(
- checkDuplicateTrainData(currentTrain.filter((a) => a.num == d.train)),
+ currentTrainData,
station.Station_JP
);
+ const trainPositionText = currentTrainData?.Pos.match("~")
+ ? `現在地:${
+ currentTrainData?.Pos.replace("(下り)", "")
+ .replace("(上り)", "")
+ .split("~")[currentTrainData?.Direction == 1 ? 0 : 1]
+ }→${
+ currentTrainData?.Pos.replace("(下り)", "")
+ .replace("(上り)", "")
+ .split("~")[currentTrainData?.Direction == 1 ? 1 : 0]
+ }間を走行中`
+ : `現在地:${currentTrainData?.Pos}`;
return (
<>
+ {trainDescriptionSwitch && }
{trainDescriptionSwitch && !!train.info && (
)}
diff --git a/lib/eachTrainInfoCoreLib/getStationData.js b/lib/eachTrainInfoCoreLib/getStationData.js
index 20b386a..35e4631 100644
--- a/lib/eachTrainInfoCoreLib/getStationData.js
+++ b/lib/eachTrainInfoCoreLib/getStationData.js
@@ -1,7 +1,7 @@
// 駅名から駅情報を取得する
//stationName: 駅名
//stationList: 駅情報リスト
-export const getStationData = (stationName, stationList) => {
+export const getStationID = (stationName, stationList) => {
const Stations = stationList.map((a) =>
a.filter((d) => d.StationName == stationName)
);
@@ -13,3 +13,15 @@ export const getStationData = (stationName, stationList) => {
if (!Station[0]) return [];
return Station.map((d) => d.StationNumber)[0];
};
+export const getStationName = (stationId, stationList) => {
+ const Stations = stationList.map((a) =>
+ a.filter((d) => d.StationNumber == stationId)
+ );
+ const Station =
+ Stations &&
+ Stations.reduce((newArray, e) => {
+ return newArray.concat(e);
+ }, []);
+ if (!Station[0]) return [];
+ return Station.map((d) => d.StaitonName)[0];
+};
diff --git a/stateBox/useCurrentTrain.js b/stateBox/useCurrentTrain.js
index 73e91ac..e49290a 100644
--- a/stateBox/useCurrentTrain.js
+++ b/stateBox/useCurrentTrain.js
@@ -31,7 +31,16 @@ export const CurrentTrainProvider = ({ children }) => {
.then((response) => response.json())
.then((d) => d.data)
.then((d) =>
- d.map((x) => ({ num: x.TrainNum, delay: x.delay, Pos: x.Pos }))
+ d.map((x) => ({
+ Index: x.Index,
+ num: x.TrainNum,
+ delay: x.delay,
+ Pos: x.Pos,
+ PosNum: x.PosNum,
+ Direction: x.Direction,
+ Type: x.Type,
+ Line: x.Line,
+ }))
)
.then((d) => {
setCurrentTrain(d);