getCurrentTrainDataを移動

This commit is contained in:
harukin-expo-dev-env
2025-09-11 16:25:03 +00:00
parent 71ee79289a
commit 338afb087a
4 changed files with 41 additions and 97 deletions

View File

@@ -3,6 +3,7 @@ import { customTrainDataDetector } from "@/components/custom-train-data";
import { StationNumberMaker } from "@/components/駅名表/StationNumberMaker";
import { checkDuplicateTrainData } from "@/lib/checkDuplicateTrainData";
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
import { getTrainDelayStatus } from "@/lib/getTrainDelayStatus";
import { getTrainType } from "@/lib/getTrainType";
import { objectIsEmpty } from "@/lib/objectIsEmpty";
@@ -301,35 +302,9 @@ 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" as trainTypeID,
trainName: typeText[1].replace("\r", ""),
trainIcon: null,
trainNumDistance: null,
info: "",
};
return returnData;
}
return customTrainData;
default:
return customTrainData;
}
};
const [train, setTrain] = useState<CustomTrainData>(getTrainDataFromCurrentTrain(d.train));
const [train, setTrain] = useState<CustomTrainData>(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
useEffect(() => {
setTrain(getTrainDataFromCurrentTrain(d.train));
setTrain(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
}, [currentTrain, d.train]);
const { name, color } = getTrainType({ type: train.type, whiteMode: true });
return (

View File

@@ -11,7 +11,8 @@ import { trainPosition } from "@/lib/trainPositionTextArray";
import { StationNumberMaker } from "../../駅名表/StationNumberMaker";
import { lineListPair, stationIDPair } from "@/lib/getStationList";
import { findReversalPoints } from "@/lib/eachTrainInfoCoreLib/findReversalPoints";
import { trainTypeID } from "@/lib/CommonTypes";
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
type props = {
trainID: string;
@@ -27,32 +28,6 @@ export const FixedTrain: FC<props> = ({ trainID }) => {
} = 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<{
Pos?: string;
Direction?: number;
@@ -63,21 +38,9 @@ export const FixedTrain: FC<props> = ({ trainID }) => {
delay?: string | number;
num?: string;
}>(null);
const [customData, setCustomData] = useState<{
ToData: string;
TrainNumber: string;
id: string;
img: string;
isWanman: boolean;
trainName: string;
trainNumDistance: number;
type: trainTypeID;
viaData: string;
info?: string;
uwasa?: string;
}>(getTrainDataFromCurrentTrain(trainID));
const [customData, setCustomData] = useState<CustomTrainData>(getCurrentTrainData(trainID, currentTrain, allCustomTrainData));
useEffect(() => {
setCustomData(getTrainDataFromCurrentTrain(trainID));
setCustomData(getCurrentTrainData(trainID, currentTrain, allCustomTrainData));
}, [currentTrain, trainID]);
useEffect(() => {
const stationData = getCurrentStationData(trainID);

View File

@@ -19,6 +19,7 @@ import useInterval from "@/lib/useInterval";
import dayjs from "dayjs";
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
type Props = {
d: {
@@ -76,35 +77,9 @@ export const EachData: FC<Props> = (props) => {
});
};
const getTrainDataFromCurrentTrain:(t:string)=>CustomTrainData = (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" as trainTypeID,
trainName: typeText[1].replace("\r", ""),
trainIcon: null,
trainNumDistance: null,
info: "",
};
return returnData;
}
return customTrainData;
default:
return customTrainData;
}
};
const [train, setTrain] = useState<CustomTrainData>(getTrainDataFromCurrentTrain(d.train));
const [train, setTrain] = useState<CustomTrainData>(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
useEffect(() => {
setTrain(getTrainDataFromCurrentTrain(d.train));
setTrain(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
}, [currentTrain, d.train, trainDescriptionSwitch]);
// 土讃線複数存在対策
const currentTrainData = checkDuplicateTrainData(

View File

@@ -0,0 +1,31 @@
import { customTrainDataDetector } from "@/components/custom-train-data";
import { CustomTrainData, trainTypeID } from "./CommonTypes";
import { trainDataType } from "./trainPositionTextArray";
export const getCurrentTrainData = (
trainNum: string,
currentTrain: trainDataType[],
allCustomTrainData: CustomTrainData[] | undefined
) => {
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" as trainTypeID,
trainName: typeText[1].replace("\r", ""),
trainIcon: null,
trainNumDistance: null,
info: "",
};
return returnData;
}
return customTrainData;
default:
return customTrainData;
}
};