From 4219e12164fa702f2dcbfb542543edf4979be0e4 Mon Sep 17 00:00:00 2001 From: harukin-OneMix4 Date: Thu, 25 Jan 2024 22:36:11 +0900 Subject: [PATCH] =?UTF-8?q?initializeTrainPairList=E3=82=92=E7=A7=BB?= =?UTF-8?q?=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActionSheetComponents/EachTrainInfo.js | 40 ++++++++++++------- stateBox/useBusAndTrainData.js | 10 ++++- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/components/ActionSheetComponents/EachTrainInfo.js b/components/ActionSheetComponents/EachTrainInfo.js index de91f14..0f2a902 100644 --- a/components/ActionSheetComponents/EachTrainInfo.js +++ b/components/ActionSheetComponents/EachTrainInfo.js @@ -48,7 +48,7 @@ export const EachTrainInfo = (props) => { const [trainPositionSwitch, setTrainPositionSwitch] = useState("false"); const { currentTrain } = useCurrentTrain(); - const { trainPairData } = useBusAndTrainData(); + const { initializeTrainPairList } = useBusAndTrainData(); const [currentTrainData, setCurrentTrainData] = useState([]); const [nearTrainIDList, setNearTrainIDList] = useState([]); @@ -57,10 +57,8 @@ export const EachTrainInfo = (props) => { //裏列車探索 useEffect(() => { - const trainPairList = {}; - trainPairData.forEach((d) => { - trainPairList[Object.keys(d)[0]] = d[Object.keys(d)[0]]; - }); + const trainPairList = initializeTrainPairList(); + const returnArray = []; if (!data.trainNum) return; if (trainPairList[data.trainNum]) { @@ -89,33 +87,45 @@ export const EachTrainInfo = (props) => { }, [data]); const openBackTrainInfo = (stationInfo, currentTrainIndex) => { - console.log(trainData); - console.log(showNearTrain); - const stationPosition = showNearTrain.findIndex( + console.log(trainData); //trainDataは現在の列車の停車駅リスト + console.log(showNearTrain); //showNearTrainは裏列車の停車駅リスト + const mainTrainStationPosition = trainData.findIndex( (d) => d.split(",")[0] == stationInfo ); - const relationBackTrain = - stationPosition == 0 + const relationMain = + mainTrainStationPosition == 0 ? "head" - : stationPosition == showNearTrain.length - 1 + : mainTrainStationPosition == trainData.length - 1 ? "tail" : "middle"; - if (relationBackTrain === "head") { + console.log(relationMain); + + const subTrainStationPosition = showNearTrain.findIndex( + (d) => d.split(",")[0] == stationInfo + ); + const relationSub = + subTrainStationPosition == 0 + ? "head" + : subTrainStationPosition == showNearTrain.length - 1 + ? "tail" + : "middle"; + console.log(relationSub); + if (relationSub === "head") { const migrationTrainData = [ ...trainData.slice(0, currentTrainIndex), ...showNearTrain, ]; setTrainData(migrationTrainData); - } else if (relationBackTrain === "tail") { + } else if (relationSub === "tail") { const migrationTrainData = [ ...showNearTrain.slice(0, showNearTrain.length - 1), ...trainData.slice(currentTrainIndex), ]; setTrainData(migrationTrainData); - } else if (relationBackTrain === "middle") { + } else if (relationSub === "middle") { const migrationTrainData = [ ...trainData.slice(0, currentTrainIndex), - ...showNearTrain.slice(0, stationPosition), + ...showNearTrain.slice(0, subTrainStationPosition), ...trainData.slice(currentTrainIndex), ]; setTrainData(migrationTrainData); diff --git a/stateBox/useBusAndTrainData.js b/stateBox/useBusAndTrainData.js index e8694bd..3c8311f 100644 --- a/stateBox/useBusAndTrainData.js +++ b/stateBox/useBusAndTrainData.js @@ -4,6 +4,7 @@ const initialState = { setBusAndTrainData: () => {}, trainPairData: [], setTrainPairData: () => {}, + initializeTrainPairList: () => {}, }; const BusAndTrainDataContext = createContext(initialState); @@ -15,7 +16,13 @@ export const useBusAndTrainData = () => { export const BusAndTrainDataProvider = ({ children }) => { const [busAndTrainData, setBusAndTrainData] = useState([]); const [trainPairData, setTrainPairData] = useState([]); - + const initializeTrainPairList = () => { + const trainPairList = {}; + trainPairData.forEach((d) => { + trainPairList[Object.keys(d)[0]] = d[Object.keys(d)[0]]; + }); + return trainPairList; + }; return ( { setBusAndTrainData, trainPairData, setTrainPairData, + initializeTrainPairList, }} > {children}