裏列車探索を外部に出力
This commit is contained in:
@@ -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}
|
||||
|
Reference in New Issue
Block a user