現在地表示をリアルタイム更新するように変更
This commit is contained in:
@@ -24,6 +24,8 @@ import {
|
||||
widthPercentageToDP,
|
||||
} from "react-native-responsive-screen";
|
||||
import lineColorList from "../../assets/originData/lineColorList";
|
||||
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
|
||||
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
|
||||
|
||||
export const EachTrainInfo = (props) => {
|
||||
if (!props.payload) return <></>;
|
||||
@@ -40,6 +42,18 @@ export const EachTrainInfo = (props) => {
|
||||
|
||||
const [trainPositionSwitch, setTrainPositionSwitch] = useState("false");
|
||||
|
||||
const { currentTrain } = useCurrentTrain();
|
||||
|
||||
const [currentTrainData, setCurrentTrainData] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
setCurrentTrainData(
|
||||
checkDuplicateTrainData(
|
||||
currentTrain.filter((d) => d.num == data.trainNum)
|
||||
)
|
||||
);
|
||||
}, [currentTrain]);
|
||||
|
||||
useEffect(() => {
|
||||
//列車現在地アイコン表示スイッチ
|
||||
AS.getItem("trainPositionSwitch")
|
||||
@@ -65,17 +79,17 @@ export const EachTrainInfo = (props) => {
|
||||
return Station.map((d) => d.StationNumber)[0];
|
||||
};
|
||||
useEffect(() => {
|
||||
//data.trainData.Pos = "鴨川~端岡"; //test
|
||||
if (!data.trainData?.Pos) return;
|
||||
if (data.trainData?.Pos.match("~")) {
|
||||
const pos = data.trainData?.Pos.replace("(下り)", "")
|
||||
//currentTrainData.Pos = "鴨川~端岡"; //test
|
||||
if (!currentTrainData?.Pos) return;
|
||||
if (currentTrainData?.Pos.match("~")) {
|
||||
const pos = currentTrainData?.Pos.replace("(下り)", "")
|
||||
.replace("(上り)", "")
|
||||
.split("~");
|
||||
setCurrentPosition([getStationData(pos[0]), getStationData(pos[1])]);
|
||||
} else {
|
||||
setCurrentPosition([getStationData(data.trainData?.Pos)]);
|
||||
setCurrentPosition([getStationData(currentTrainData?.Pos)]);
|
||||
}
|
||||
}, [data.trainData]);
|
||||
}, [currentTrainData]);
|
||||
|
||||
const stationList =
|
||||
originalStationList &&
|
||||
@@ -339,7 +353,7 @@ export const EachTrainInfo = (props) => {
|
||||
現在地 {currentPosition.toString()}
|
||||
</Text>
|
||||
<View style={{ flex: 1 }} />
|
||||
{data.trainData?.Pos && data.trainData?.Pos.match("~") ? (
|
||||
{currentTrainData?.Pos && currentTrainData?.Pos.match("~") ? (
|
||||
<>
|
||||
<Text
|
||||
style={{
|
||||
@@ -349,7 +363,7 @@ export const EachTrainInfo = (props) => {
|
||||
}}
|
||||
>
|
||||
{
|
||||
data.trainData?.Pos.replace("(下り)", "")
|
||||
currentTrainData?.Pos.replace("(下り)", "")
|
||||
.replace("(上り)", "")
|
||||
.split("~")[0]
|
||||
}
|
||||
@@ -365,7 +379,7 @@ export const EachTrainInfo = (props) => {
|
||||
}}
|
||||
>
|
||||
{
|
||||
data.trainData?.Pos.replace("(下り)", "")
|
||||
currentTrainData?.Pos.replace("(下り)", "")
|
||||
.replace("(上り)", "")
|
||||
.split("~")[1]
|
||||
}
|
||||
@@ -379,7 +393,7 @@ export const EachTrainInfo = (props) => {
|
||||
textAlign: "right",
|
||||
}}
|
||||
>
|
||||
{data.trainData?.Pos}
|
||||
{currentTrainData?.Pos}
|
||||
</Text>
|
||||
)}
|
||||
</View>
|
||||
@@ -394,7 +408,7 @@ export const EachTrainInfo = (props) => {
|
||||
}}
|
||||
>
|
||||
<Text style={{ fontSize: 15, color: "#0099CC" }}>
|
||||
{isNaN(data.trainData?.delay) ? "状態" : "遅延時分"}
|
||||
{isNaN(currentTrainData?.delay) ? "状態" : "遅延時分"}
|
||||
</Text>
|
||||
<View style={{ flex: 1 }} />
|
||||
<Text
|
||||
@@ -404,8 +418,8 @@ export const EachTrainInfo = (props) => {
|
||||
textAlign: "right",
|
||||
}}
|
||||
>
|
||||
{data.trainData?.delay}
|
||||
{isNaN(data.trainData?.delay) ? "" : "分"}
|
||||
{currentTrainData?.delay}
|
||||
{isNaN(currentTrainData?.delay) ? "" : "分"}
|
||||
</Text>
|
||||
</View>
|
||||
<View
|
||||
@@ -425,7 +439,7 @@ export const EachTrainInfo = (props) => {
|
||||
textAlign: "right",
|
||||
}}
|
||||
>
|
||||
{data.trainData?.num}
|
||||
{currentTrainData?.num}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
@@ -546,8 +560,8 @@ export const EachTrainInfo = (props) => {
|
||||
<Text style={{ fontSize: 20 }}>停車駅</Text>
|
||||
<View style={{ flex: 1 }} />
|
||||
<View style={{ flexDirection: "row" }}>
|
||||
{!isNaN(data.trainData?.delay) &&
|
||||
data.trainData?.delay != 0 && (
|
||||
{!isNaN(currentTrainData?.delay) &&
|
||||
currentTrainData?.delay != 0 && (
|
||||
<Text
|
||||
style={{
|
||||
fontSize: 15,
|
||||
@@ -564,9 +578,9 @@ export const EachTrainInfo = (props) => {
|
||||
<Text
|
||||
style={{
|
||||
fontSize: 20,
|
||||
color: isNaN(data.trainData?.delay)
|
||||
color: isNaN(currentTrainData?.delay)
|
||||
? "black"
|
||||
: data.trainData?.delay == 0
|
||||
: currentTrainData?.delay == 0
|
||||
? "black"
|
||||
: "red",
|
||||
width: 60,
|
||||
@@ -612,8 +626,8 @@ export const EachTrainInfo = (props) => {
|
||||
if (time) {
|
||||
date.setHours(time.split(":")[0], time.split(":")[1]);
|
||||
}
|
||||
if (!isNaN(data.trainData?.delay)) {
|
||||
date.setMinutes(date.getMinutes() + data.trainData?.delay);
|
||||
if (!isNaN(currentTrainData?.delay)) {
|
||||
date.setMinutes(date.getMinutes() + currentTrainData?.delay);
|
||||
}
|
||||
const timeString = date.toTimeString().split(" ")[0].split(":");
|
||||
return (
|
||||
@@ -685,8 +699,8 @@ export const EachTrainInfo = (props) => {
|
||||
🚊
|
||||
</Text>
|
||||
) : null}
|
||||
{!isNaN(data.trainData?.delay) &&
|
||||
data.trainData?.delay != 0 && (
|
||||
{!isNaN(currentTrainData?.delay) &&
|
||||
currentTrainData?.delay != 0 && (
|
||||
<Text
|
||||
style={{
|
||||
fontSize: 15,
|
||||
@@ -704,9 +718,9 @@ export const EachTrainInfo = (props) => {
|
||||
<Text
|
||||
style={{
|
||||
fontSize: 20,
|
||||
color: isNaN(data.trainData?.delay)
|
||||
color: isNaN(currentTrainData?.delay)
|
||||
? "black"
|
||||
: data.trainData?.delay == 0
|
||||
: currentTrainData?.delay == 0
|
||||
? "black"
|
||||
: "red",
|
||||
width: 60,
|
||||
|
Reference in New Issue
Block a user