Files
jrshikoku/lib/eachTrainInfoCoreLib/openBackTrainInfo.ts
harukin-expo-dev-env e8a2547ca4 tsx化
2025-12-05 10:43:57 +00:00

86 lines
2.6 KiB
TypeScript

import { logger } from "@/utils/logger";
export const openBackTrainInfo = (stationInfo, trainData, showNearTrain) => {
const migrationArray = (stationInfo) => {
const mainTrainStationPosition = trainData.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const relationMain = (() => {
if (mainTrainStationPosition == 0) return "head";
if (mainTrainStationPosition == trainData.length - 1) return "tail";
return "middle";
})();
const subTrainStationPosition = showNearTrain.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const relationSub = (() => {
if (subTrainStationPosition == 0) return "head";
if (subTrainStationPosition == showNearTrain.length - 1) return "tail";
return "middle";
})();
if (__DEV__) {
logger.debug('Relation data:', relationMain, relationSub);
}
switch (relationMain) {
case "head":
if (relationSub == "head") {
return;
} else if (relationSub == "tail") {
return [...showNearTrain, ...trainData];
} else if (relationSub == "middle") {
if (
showNearTrain[subTrainStationPosition].split(",")[1].includes("着")
) {
return [
...showNearTrain.slice(0, subTrainStationPosition + 1),
...trainData,
];
} else {
return [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData,
];
}
} else return;
case "tail":
if (relationSub == "head") {
return [...trainData, ...showNearTrain];
} else if (relationSub == "tail") {
return;
} else if (relationSub == "middle") {
if (
showNearTrain[subTrainStationPosition].split(",")[1].includes("着")
) {
return [
...trainData,
...showNearTrain.slice(subTrainStationPosition + 1),
];
} else {
return [
...trainData,
...showNearTrain.slice(subTrainStationPosition),
];
}
} else return;
case "middle": //現状使わない
if (relationSub == "head") {
return [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain,
];
} else if (relationSub == "tail") {
return [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData.slice(mainTrainStationPosition),
];
} else return;
}
};
const array = migrationArray(stationInfo);
if (!array) return null;
return array;
};