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; };