initializeTrainPairListを移動

This commit is contained in:
harukin-OneMix4 2024-01-25 22:36:11 +09:00
parent 6300259e70
commit 4219e12164
2 changed files with 34 additions and 16 deletions

View File

@ -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);

View File

@ -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 (
<BusAndTrainDataContext.Provider
value={{
@ -23,6 +30,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
setBusAndTrainData,
trainPairData,
setTrainPairData,
initializeTrainPairList,
}}
>
{children}