裏列車探索を外部に出力

This commit is contained in:
harukin-OneMix4
2024-02-02 12:11:32 +09:00
parent a6d8f9ac33
commit b8176d2f29
2 changed files with 35 additions and 40 deletions

View File

@@ -1,10 +1,12 @@
import React, { createContext, useContext, useState } from "react";
import trainList from "../assets/originData/trainList";
const initialState = {
busAndTrainData: [],
setBusAndTrainData: () => {},
trainPairData: [],
setTrainPairData: () => {},
initializeTrainPairList: () => {},
getInfluencedTrainData: () => {},
};
const BusAndTrainDataContext = createContext(initialState);
@@ -23,6 +25,34 @@ export const BusAndTrainDataProvider = ({ children }) => {
});
return trainPairList;
};
const getInfluencedTrainData = (trainNum) => {
const trainPairList = initializeTrainPairList();
const returnArray = [];
if (!trainNum) return;
if (trainPairList[trainNum]) {
returnArray.push(Object.keys(trainPairList[trainNum])[0]);
}
if (
// 列番が4xxDまたは5xxDの場合はxxDの列番を検索
new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum) ||
new RegExp(/^5[1-7]\d\d[DM]$/).test(trainNum)
) {
if (trainList[trainNum.substring(1)]) {
returnArray.push(trainNum.substring(1));
}
}
if (new RegExp(/^[1-9]\d\d[DM]$/).test(trainNum)) {
// 列番がxxDの場合は4xxDと5xxDの列番を検索
if (trainList["4" + trainNum]) returnArray.push("4" + trainNum);
if (trainList["5" + trainNum]) returnArray.push("5" + trainNum);
}
if (!returnArray[0]) return [[], []];
const TD = trainList[returnArray[0]];
if (!TD) return [[], []];
const TDArray = TD.split("#").filter((d) => d != "");
return [returnArray, TDArray];
};
return (
<BusAndTrainDataContext.Provider
value={{
@@ -31,6 +61,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
trainPairData,
setTrainPairData,
initializeTrainPairList,
getInfluencedTrainData,
}}
>
{children}