種別表示機能を追加

This commit is contained in:
harukin-expo-dev-env
2025-09-08 18:09:20 +00:00
parent b43604c7f1
commit 4674f46c82

View File

@@ -1,7 +1,10 @@
import lineColorList from "@/assets/originData/lineColorList";
import { customTrainDataDetector } from "@/components/custom-train-data";
import { StationNumberMaker } from "@/components/駅名表/StationNumberMaker";
import { checkDuplicateTrainData } from "@/lib/checkDuplicateTrainData";
import { typeID } from "@/lib/getStringConfig";
import { getTrainDelayStatus } from "@/lib/getTrainDelayStatus";
import { getTrainType } from "@/lib/getTrainType";
import { objectIsEmpty } from "@/lib/objectIsEmpty";
import { trainPosition } from "@/lib/trainPositionTextArray";
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
@@ -221,6 +224,7 @@ export const FixedStation = ({ stationID }) => {
margin: 0,
padding: 0,
flex: 1,
color:"white"
}}
>
{station[0]?.Station_JP}
@@ -265,7 +269,7 @@ export const FixedStation = ({ stationID }) => {
<FixedStationBoxEachTrain
d={d}
station={station[0]}
key={d.train}
key={d.train + "-fixedStationBox"}
/>
))
) : (
@@ -283,6 +287,7 @@ export const FixedStation = ({ stationID }) => {
const FixedStationBoxEachTrain = ({ d, station }) => {
const { currentTrain } = useCurrentTrain();
const { stationList } = useStationList();
const { allCustomTrainData } = useAllTrainDiagram();
const currentTrainData = checkDuplicateTrainData(
currentTrain.filter((a) => a.num == d.train),
stationList
@@ -292,16 +297,55 @@ const FixedStationBoxEachTrain = ({ d, station }) => {
currentTrainData,
station.Station_JP
)}`;
const getTrainDataFromCurrentTrain = (trainNum: string) => {
const customTrainData = customTrainDataDetector(
d.train,
allCustomTrainData
);
switch (customTrainData.type) {
case "Normal":
case "OneMan":
const currentTrainData = currentTrain.filter((a) => a.num == trainNum);
if (currentTrainData.length == 0) return customTrainData;
else if (currentTrainData[0].Type.includes("rapid:")) {
const typeText = currentTrainData[0].Type.split(":");
const returnData = {
type: "Rapid",
trainName: typeText[1].replace("\r", ""),
trainIcon: null,
trainNumDistance: null,
info: "",
};
return returnData;
}
return customTrainData;
default:
return customTrainData;
}
};
const [train, setTrain] = useState<{
ToData: string;
TrainNumber: string;
id: string;
img: string;
isWanman: boolean;
trainName: string;
trainNumDistance: number;
type: typeID;
viaData: string;
info?: string;
uwasa?: string;
}>(getTrainDataFromCurrentTrain(d.train));
useEffect(() => {
setTrain(getTrainDataFromCurrentTrain(d.train));
}, [currentTrain, d.train]);
const { name, color } = getTrainType(train.type);
return (
<View
style={{ backgroundColor: "white", flexDirection: "row" }}
key={d.train + "-fixedStationBox"}
>
<Text style={{ fontSize: 20, flex: 1 }}>{d.time}</Text>
<Text style={{ fontSize: 20, flex: 1 }}>{d.train}</Text>
<Text style={{ fontSize: 20, flex: 1 }}>{d.lastStation}</Text>
<Text style={{ fontSize: 20 }}>{trainDelayStatus}</Text>
<View style={{ backgroundColor: "white", flexDirection: "row" }}>
<Text style={{ fontSize: 20, flex: 2 }}>{d.time}</Text>
<Text style={{ fontSize: 20, flex: 2 }}>{name}</Text>
<Text style={{ fontSize: 20, flex: 3 }}>{d.lastStation}</Text>
<Text style={{ fontSize: 20, flex: 3 }}>{trainDelayStatus}</Text>
</View>
);
};