オリジナルダイヤ表示反映に対応

This commit is contained in:
harukin-expo-dev-env
2025-08-23 14:26:24 +00:00
parent 98d3b750de
commit b07521e4ef
4 changed files with 73 additions and 38 deletions

View File

@@ -12,9 +12,9 @@ export const EachStopList = ({
openStationACFromEachTrainInfo,
showThrew,
}) => {
if(!showThrew){
if(i.split(",")[1] == "通過") return null;
if(i.split(",")[1] == "通編") return null;
if (!showThrew) {
if (i.split(",")[1] == "通過") return null;
if (i.split(",")[1] == "通編") return null;
}
const [station, se, time] = i.split(","); // 阿波池田,発,6:21
const Stations = stationList
@@ -33,6 +33,24 @@ export const EachStopList = ({
const StationNumbers =
Stations &&
Stations.filter((d) => d.StationNumber).map((d) => d.StationNumber);
const [seString, seType] = (() => {
switch (se) {
case "発":
return ["出発", "normal"];
case "着":
return ["到着", "normal"];
case "発編":
return ["出発", "community"];
case "着編":
return ["到着", "community"];
case "通編":
return ["通過", "community"];
case "頃編":
return ["頃", "community"];
default:
return [se, "normal"];
}
})();
// Array [ "T01", "B01",]
const lineIDs = [];
const EachIDs = [];
@@ -48,7 +66,7 @@ export const EachStopList = ({
.set("hour", parseInt(time.split(":")[0]))
.set("minute", parseInt(time.split(":")[1]))
.add(isNaN(currentTrainData?.delay) ? 0 : currentTrainData.delay, "minute");
const timeString = se == "通過" ? "" : dates.format("HH:mm").split(":");
const timeString = se == "通過" ? "" : dates.format("HH:mm");
return (
<TouchableWithoutFeedback
@@ -58,7 +76,12 @@ export const EachStopList = ({
}
key={station}
>
<View style={{ flexDirection: "row", backgroundColor: "white" }}>
<View
style={{
flexDirection: "row",
backgroundColor: seType == "community" ? "#e3ffcdff" : "white",
}}
>
<View
style={{
width: 35,
@@ -72,7 +95,7 @@ export const EachStopList = ({
<View
style={{
backgroundColor: `${lineColorList[lineID]}${
se == "通過" ? "80" : ""
se == "通過" || se == "通編" ? "80" : ""
}`,
flex: 1,
}}
@@ -105,7 +128,11 @@ export const EachStopList = ({
}}
>
<Text
style={{ fontSize: 20, color: `#000${se == "通過" ? "5" : ""}` }}
style={{
fontSize: 20,
color: `#000${se == "通過" || se == "通編" ? "5" : ""}`,
fontStyle: seType == "community" ? "italic" : "normal",
}}
>
{station}
</Text>
@@ -122,12 +149,13 @@ export const EachStopList = ({
<Text
style={{
fontSize: 15,
color: "black",
color: `#000${se == "通過" || se == "通編" ? "5" : ""}`,
width: 60,
position: "absolute",
right: 120,
textAlign: "right",
textDecorationLine: "line-through",
fontStyle: seType == "community" ? "italic" : "normal",
}}
>
{time}
@@ -137,18 +165,17 @@ export const EachStopList = ({
style={{
fontSize: 20,
color: isNaN(currentTrainData?.delay)
? "black"
? `#000${se == "通過" || se == "通編" ? "5" : ""}`
: currentTrainData?.delay == 0
? "black"
? `#000${se == "通過" || se == "通編" ? "5" : ""}`
: "red",
width: 60,
fontStyle: seType == "community" ? "italic" : "normal",
}}
>
{se == "通過" ? "レ" : `${timeString[0]}:${timeString[1]}`}
</Text>
<Text style={{ fontSize: 18, width: 50 }}>
{se?.replace("発", "出発").replace("着", "到着")}
{se == "通過" ? "レ" : timeString}
</Text>
<Text style={{ fontSize: 18, width: 50,color:`#000${se == "通過" || se == "通編" ? "5" : ""}` }}>{seString}</Text>
</View>
</View>
</TouchableWithoutFeedback>

View File

@@ -14,24 +14,29 @@ export const ShowSpecialTrain = ({
};
return (
<>
{isTrainDataNothing && trueTrainID && (
<TouchableOpacity
onPress={() => replaceSpecialTrainDetail(trueTrainID)}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text style={{ fontSize: 18, fontWeight: "bold", color: "black" }}>
本来の列車情報を表示
</Text>
</TouchableOpacity>
)}
{isTrainDataNothing &&
trueTrainID?.map((ids) => {
return (
<TouchableOpacity
onPress={() => replaceSpecialTrainDetail(ids)}
style={{
padding: 10,
flexDirection: "row",
borderColor: "blue",
borderWidth: 1,
margin: 10,
borderRadius: 5,
alignItems: "center",
}}
>
<Text
style={{ fontSize: 18, fontWeight: "bold", color: "black" }}
>
本来の列車情報候補を表示:({ids})
</Text>
</TouchableOpacity>
);
})}
</>
);
};

View File

@@ -197,15 +197,15 @@ export const EachTrainInfoCore = ({
const scrollHandlers = actionSheetRef
? useScrollHandlers("scrollview-1", actionSheetRef)
: null;
const [trueTrainID, setTrueTrainID] = useState();
const [trueTrainID, setTrueTrainID] = useState([]);
useEffect(() => {
if (!data.trainNum) return;
const TD = trainList[data.trainNum];
setHeadStation([]);
setTailStation([]);
if (!TD) {
const specialTrainActualID = searchSpecialTrain(data.trainNum, trainList);
setTrueTrainID(specialTrainActualID || undefined);
const specialTrainActualIDs = searchSpecialTrain(data.trainNum, trainList);
setTrueTrainID(specialTrainActualIDs || []);
setTrainData([]);
return;
}
@@ -494,6 +494,7 @@ export const EachTrainInfoCore = ({
/>
)
)}
<Text>背景が緑色時刻が斜体になっている時刻はコミュニティで追加されている独自データです</Text>
{tailStation.length != 0 &&
tailStation.map(({ station, dia }, index) =>
showTailStation.findIndex((d) => d == index) == -1 ? (

View File

@@ -8,8 +8,9 @@ export const searchSpecialTrain = (trainNum: string, trainList: any[]) => {
}
return false;
};
if (search("D")) return searchBase + "D";
if (search("M")) return searchBase + "M";
const returnBase = [];
if (search("D")) returnBase.push(searchBase + "D");
if (search("M")) returnBase.push(searchBase + "M");
//増結いしづちの場合
const baseStr = trainNum
@@ -21,6 +22,7 @@ export const searchSpecialTrain = (trainNum: string, trainList: any[]) => {
if (9000 < baseNum && baseNum < 9047) {
//いしづちの1001M-1046Mが9000番台になっている場合に発動
const TD = trainList[`${baseNum - 8000}M`];
if (TD) return `${baseNum - 8000}M`;
if (TD) returnBase.push(`${baseNum - 8000}M`);
}
return returnBase;
};