現在地の走行方向の帳尻合わせとLEDの現在地表記、運行情報のテキストの消滅処理等
This commit is contained in:
parent
644c08f4c6
commit
1131101eb6
@ -17,7 +17,9 @@ export const StateBox = ({ text, title, style, mode }) => (
|
||||
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
|
||||
{text.split("~")[0]}
|
||||
</Text>
|
||||
<Text style={{ color: "#0099CC", textAlign: "right" }}>~</Text>
|
||||
<Text style={{ color: "#0099CC", textAlign: "right" }}>
|
||||
{mode == 2 ? "→" : "↓"}
|
||||
</Text>
|
||||
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
|
||||
{text.split("~")[1]}
|
||||
</Text>
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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 && (
|
||||
<TouchableOpacity
|
||||
onPress={() =>
|
||||
Linking.openURL(`https://twitter.com/search?q=${data.trainNum}`)
|
||||
}
|
||||
style={{
|
||||
padding: 10,
|
||||
flexDirection: "row",
|
||||
borderColor: "blue",
|
||||
borderWidth: 1,
|
||||
margin: 10,
|
||||
borderRadius: 5,
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Text style={{ fontSize: 18, fontWeight: "bold", color: "black" }}>
|
||||
Twitterで検索
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
)}
|
||||
{trainData.map((i, index) =>
|
||||
i.split(",")[1] == "提" ? (
|
||||
<DataFromButton i={i} />
|
||||
|
@ -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 (
|
||||
<>
|
||||
<TouchableOpacity
|
||||
@ -365,6 +385,7 @@ const EachData = ({
|
||||
<DependTime time={d.time} />
|
||||
<StatusAndDelay trainDelayStatus={trainDelayStatus} />
|
||||
</TouchableOpacity>
|
||||
{trainDescriptionSwitch && <Description info={`${trainPositionText}`} />}
|
||||
{trainDescriptionSwitch && !!train.info && (
|
||||
<Description info={train.info} />
|
||||
)}
|
||||
|
@ -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];
|
||||
};
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user