From edaa16cf358ab6f4ca1e20e011ad4cdcd68446cb Mon Sep 17 00:00:00 2001 From: harukin-OneMix4 Date: Fri, 2 Feb 2024 12:29:42 +0900 Subject: [PATCH] =?UTF-8?q?=E7=B5=90=E5=90=88=E5=87=A6=E7=90=86=E3=82=92?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActionSheetComponents/EachTrainInfo.js | 130 +++++++++--------- 1 file changed, 63 insertions(+), 67 deletions(-) diff --git a/components/ActionSheetComponents/EachTrainInfo.js b/components/ActionSheetComponents/EachTrainInfo.js index becdb0e..84320ca 100644 --- a/components/ActionSheetComponents/EachTrainInfo.js +++ b/components/ActionSheetComponents/EachTrainInfo.js @@ -77,76 +77,72 @@ export const EachTrainInfo = (props) => { }, [trainData, showNearTrain]); const openBackTrainInfo = (stationInfo, currentTrainIndex) => { - const mainTrainStationPosition = trainData.findIndex( - (d) => d.split(",")[0] == stationInfo - ); + 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 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"; - })(); + 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"; + })(); - switch (relationMain) { - case "head": - if (relationSub == "head") { - break; - } else if (relationSub == "tail") { - const migrationTrainData = [ - ...showNearTrain.slice(0, subTrainStationPosition), - ...trainData, - ]; - setTrainData(migrationTrainData); - } else if (relationSub == "middle") { - const migrationTrainData = [ - ...showNearTrain.slice(0, subTrainStationPosition), - ...trainData, - ]; - setTrainData(migrationTrainData); - } - break; - case "tail": - if (relationSub == "head") { - const migrationTrainData = [ - ...trainData.slice(0, mainTrainStationPosition), - ...showNearTrain, - ]; - setTrainData(migrationTrainData); - } else if (relationSub == "tail") { - break; - } else if (relationSub == "middle") { - const migrationTrainData = [ - ...trainData.slice(0, mainTrainStationPosition), - ...showNearTrain.slice(subTrainStationPosition), - ]; - setTrainData(migrationTrainData); - } - break; - case "middle": - if (relationSub == "head") { - const migrationTrainData = [ - ...trainData.slice(0, mainTrainStationPosition), - ...showNearTrain, - ]; - setTrainData(migrationTrainData); - } else if (relationSub == "tail") { - const migrationTrainData = [ - ...showNearTrain.slice(0, subTrainStationPosition), - ...trainData.slice(mainTrainStationPosition), - ]; - setTrainData(migrationTrainData); - } - break; - } + switch (relationMain) { + case "head": + if (relationSub == "head") { + return; + } else if (relationSub == "tail") { + return [ + ...showNearTrain.slice(0, subTrainStationPosition), + ...trainData, + ]; + } else if (relationSub == "middle") { + return [ + ...showNearTrain.slice(0, subTrainStationPosition), + ...trainData, + ]; + } else return; + case "tail": + if (relationSub == "head") { + return [ + ...trainData.slice(0, mainTrainStationPosition), + ...showNearTrain, + ]; + } else if (relationSub == "tail") { + return; + } else if (relationSub == "middle") { + return [ + ...trainData.slice(0, mainTrainStationPosition), + ...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; + setTrainData(array); setIsConcatNear(true); };