import lineColorList from "@/assets/originData/lineColorList";
import { getStationID } from "@/lib/eachTrainInfoCoreLib/getStationData";
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
import { useCurrentTrain } from "@/stateBox/useCurrentTrain";
import { useStationList, StationProps } from "@/stateBox/useStationList";
import { useEffect, useState } from "react";
import { Text, TouchableOpacity, View, Image, Platform } from "react-native";
import { customTrainDataDetector } from "../custom-train-data";
import { getStringConfig, typeID } from "@/lib/getStringConfig";
import { getTrainType } from "@/lib/getTrainType";
import Constants from "expo-constants";
export const FixedPositionBox = () => {
const { fixedPosition, setFixedPosition } = useCurrentTrain();
return (
{fixedPosition.type === "station" && (
)}
{fixedPosition.type === "train" && (
)}
);
};
export const FixedStation = ({ stationID }) => {
const { fixedPosition, setFixedPosition } = useCurrentTrain();
const { getStationDataFromId } = useStationList();
const [station, setStation] = useState([]);
useEffect(() => {
const data = getStationDataFromId(stationID);
setStation(data);
}, [stationID]);
console.log(station);
const lineColor =
station.length > 0
? lineColorList[station[0]?.StationNumber.slice(0, 1)]
: "white";
return (
{
setFixedPosition({ type: null, value: null });
}}
>
{station.map((s) => {
if (s.StationNumber === null) return null;
return (
{s.StationNumber?.slice(0, 1)}
{s.StationNumber?.slice(1)}
);
})}
{station[0]?.Station_JP}
駅情報固定中
次:15:00 快速マリン 岡山
);
};
export const FixedTrain = ({ trainID }) => {
const { fixedPosition, setFixedPosition, currentTrain } = useCurrentTrain();
const { allCustomTrainData, allTrainDiagram } = useAllTrainDiagram();
const getTrainDataFromCurrentTrain = (trainNum: string) => {
const customTrainData = customTrainDataDetector(
trainNum,
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<{
Index: string;
num: string;
delay: string;
Pos: string;
PosNum: string;
Direction: number;
Type: string;
Line: string;
}>(null);
const [customData, setCustomData] = useState<{
ToData: string;
TrainNumber: string;
id: string;
img: string;
isWanman: boolean;
trainName: string;
trainNumDistance: number;
type: typeID;
viaData: string;
info?: string;
uwasa?: string;
}>(getTrainDataFromCurrentTrain(trainID));
useEffect(() => {
setCustomData(getTrainDataFromCurrentTrain(trainID));
}, [currentTrain, trainID]);
useEffect(() => {
currentTrain.forEach((d) => {
if (d.num == trainID) setTrain(d);
});
}, [trainID, currentTrain]);
const [ToData, setToData] = useState("");
useEffect(() => {
if (customData.ToData && customData.ToData != "") {
setToData(customData.ToData);
} else {
const base = allTrainDiagram[trainID];
if (!base) return;
const data = base.split("#");
setToData(data[data.length - 2].split(",")[0]);
}
}, [customData, train]);
const [stringConfig, setStringConfig] = useState([, ,]);
useEffect(() => {
const x = getStringConfig(customData.type, customData.TrainNumber);
setStringConfig(x);
}, [customData]);
return (
{
setFixedPosition({ type: null, value: null });
}}
>
{stringConfig[0]}
{ToData}行
列車情報追跡中
次は どこですか
);
};