getCurrentTrainDataを移動
This commit is contained in:
@@ -3,6 +3,7 @@ import { customTrainDataDetector } from "@/components/custom-train-data";
|
|||||||
import { StationNumberMaker } from "@/components/駅名表/StationNumberMaker";
|
import { StationNumberMaker } from "@/components/駅名表/StationNumberMaker";
|
||||||
import { checkDuplicateTrainData } from "@/lib/checkDuplicateTrainData";
|
import { checkDuplicateTrainData } from "@/lib/checkDuplicateTrainData";
|
||||||
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
|
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
|
||||||
|
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
|
||||||
import { getTrainDelayStatus } from "@/lib/getTrainDelayStatus";
|
import { getTrainDelayStatus } from "@/lib/getTrainDelayStatus";
|
||||||
import { getTrainType } from "@/lib/getTrainType";
|
import { getTrainType } from "@/lib/getTrainType";
|
||||||
import { objectIsEmpty } from "@/lib/objectIsEmpty";
|
import { objectIsEmpty } from "@/lib/objectIsEmpty";
|
||||||
@@ -301,35 +302,9 @@ const FixedStationBoxEachTrain = ({ d, station }) => {
|
|||||||
currentTrainData,
|
currentTrainData,
|
||||||
station.Station_JP
|
station.Station_JP
|
||||||
)}`;
|
)}`;
|
||||||
const getTrainDataFromCurrentTrain = (trainNum: string) => {
|
const [train, setTrain] = useState<CustomTrainData>(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
|
||||||
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));
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTrain(getTrainDataFromCurrentTrain(d.train));
|
setTrain(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
|
||||||
}, [currentTrain, d.train]);
|
}, [currentTrain, d.train]);
|
||||||
const { name, color } = getTrainType({ type: train.type, whiteMode: true });
|
const { name, color } = getTrainType({ type: train.type, whiteMode: true });
|
||||||
return (
|
return (
|
||||||
|
@@ -11,7 +11,8 @@ import { trainPosition } from "@/lib/trainPositionTextArray";
|
|||||||
import { StationNumberMaker } from "../../駅名表/StationNumberMaker";
|
import { StationNumberMaker } from "../../駅名表/StationNumberMaker";
|
||||||
import { lineListPair, stationIDPair } from "@/lib/getStationList";
|
import { lineListPair, stationIDPair } from "@/lib/getStationList";
|
||||||
import { findReversalPoints } from "@/lib/eachTrainInfoCoreLib/findReversalPoints";
|
import { findReversalPoints } from "@/lib/eachTrainInfoCoreLib/findReversalPoints";
|
||||||
import { trainTypeID } from "@/lib/CommonTypes";
|
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
|
||||||
|
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
|
||||||
|
|
||||||
type props = {
|
type props = {
|
||||||
trainID: string;
|
trainID: string;
|
||||||
@@ -27,32 +28,6 @@ export const FixedTrain: FC<props> = ({ trainID }) => {
|
|||||||
} = useCurrentTrain();
|
} = useCurrentTrain();
|
||||||
const { allCustomTrainData, allTrainDiagram } = useAllTrainDiagram();
|
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<{
|
const [train, setTrain] = useState<{
|
||||||
Pos?: string;
|
Pos?: string;
|
||||||
Direction?: number;
|
Direction?: number;
|
||||||
@@ -63,21 +38,9 @@ export const FixedTrain: FC<props> = ({ trainID }) => {
|
|||||||
delay?: string | number;
|
delay?: string | number;
|
||||||
num?: string;
|
num?: string;
|
||||||
}>(null);
|
}>(null);
|
||||||
const [customData, setCustomData] = useState<{
|
const [customData, setCustomData] = useState<CustomTrainData>(getCurrentTrainData(trainID, currentTrain, allCustomTrainData));
|
||||||
ToData: string;
|
|
||||||
TrainNumber: string;
|
|
||||||
id: string;
|
|
||||||
img: string;
|
|
||||||
isWanman: boolean;
|
|
||||||
trainName: string;
|
|
||||||
trainNumDistance: number;
|
|
||||||
type: trainTypeID;
|
|
||||||
viaData: string;
|
|
||||||
info?: string;
|
|
||||||
uwasa?: string;
|
|
||||||
}>(getTrainDataFromCurrentTrain(trainID));
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCustomData(getTrainDataFromCurrentTrain(trainID));
|
setCustomData(getCurrentTrainData(trainID, currentTrain, allCustomTrainData));
|
||||||
}, [currentTrain, trainID]);
|
}, [currentTrain, trainID]);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const stationData = getCurrentStationData(trainID);
|
const stationData = getCurrentStationData(trainID);
|
||||||
|
@@ -19,6 +19,7 @@ import useInterval from "@/lib/useInterval";
|
|||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
||||||
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
|
import { CustomTrainData, trainTypeID } from "@/lib/CommonTypes";
|
||||||
|
import { getCurrentTrainData } from "@/lib/getCurrentTrainData";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
d: {
|
d: {
|
||||||
@@ -76,35 +77,9 @@ export const EachData: FC<Props> = (props) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const getTrainDataFromCurrentTrain:(t:string)=>CustomTrainData = (trainNum: string) => {
|
const [train, setTrain] = useState<CustomTrainData>(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
|
||||||
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));
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTrain(getTrainDataFromCurrentTrain(d.train));
|
setTrain(getCurrentTrainData(d.train,currentTrain,allCustomTrainData));
|
||||||
}, [currentTrain, d.train, trainDescriptionSwitch]);
|
}, [currentTrain, d.train, trainDescriptionSwitch]);
|
||||||
// 土讃線複数存在対策
|
// 土讃線複数存在対策
|
||||||
const currentTrainData = checkDuplicateTrainData(
|
const currentTrainData = checkDuplicateTrainData(
|
||||||
|
31
lib/getCurrentTrainData.ts
Normal file
31
lib/getCurrentTrainData.ts
Normal 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;
|
||||||
|
}
|
||||||
|
};
|
Reference in New Issue
Block a user