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 [trainPositionSwitch, setTrainPositionSwitch] = useState("false");
const { currentTrain } = useCurrentTrain(); const { currentTrain } = useCurrentTrain();
const { trainPairData } = useBusAndTrainData(); const { initializeTrainPairList } = useBusAndTrainData();
const [currentTrainData, setCurrentTrainData] = useState([]); const [currentTrainData, setCurrentTrainData] = useState([]);
const [nearTrainIDList, setNearTrainIDList] = useState([]); const [nearTrainIDList, setNearTrainIDList] = useState([]);
@ -57,10 +57,8 @@ export const EachTrainInfo = (props) => {
//裏列車探索 //裏列車探索
useEffect(() => { useEffect(() => {
const trainPairList = {}; const trainPairList = initializeTrainPairList();
trainPairData.forEach((d) => {
trainPairList[Object.keys(d)[0]] = d[Object.keys(d)[0]];
});
const returnArray = []; const returnArray = [];
if (!data.trainNum) return; if (!data.trainNum) return;
if (trainPairList[data.trainNum]) { if (trainPairList[data.trainNum]) {
@ -89,33 +87,45 @@ export const EachTrainInfo = (props) => {
}, [data]); }, [data]);
const openBackTrainInfo = (stationInfo, currentTrainIndex) => { const openBackTrainInfo = (stationInfo, currentTrainIndex) => {
console.log(trainData); console.log(trainData); //trainDataは現在の列車の停車駅リスト
console.log(showNearTrain); console.log(showNearTrain); //showNearTrainは裏列車の停車駅リスト
const stationPosition = showNearTrain.findIndex( const mainTrainStationPosition = trainData.findIndex(
(d) => d.split(",")[0] == stationInfo (d) => d.split(",")[0] == stationInfo
); );
const relationBackTrain = const relationMain =
stationPosition == 0 mainTrainStationPosition == 0
? "head" ? "head"
: stationPosition == showNearTrain.length - 1 : mainTrainStationPosition == trainData.length - 1
? "tail" ? "tail"
: "middle"; : "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 = [ const migrationTrainData = [
...trainData.slice(0, currentTrainIndex), ...trainData.slice(0, currentTrainIndex),
...showNearTrain, ...showNearTrain,
]; ];
setTrainData(migrationTrainData); setTrainData(migrationTrainData);
} else if (relationBackTrain === "tail") { } else if (relationSub === "tail") {
const migrationTrainData = [ const migrationTrainData = [
...showNearTrain.slice(0, showNearTrain.length - 1), ...showNearTrain.slice(0, showNearTrain.length - 1),
...trainData.slice(currentTrainIndex), ...trainData.slice(currentTrainIndex),
]; ];
setTrainData(migrationTrainData); setTrainData(migrationTrainData);
} else if (relationBackTrain === "middle") { } else if (relationSub === "middle") {
const migrationTrainData = [ const migrationTrainData = [
...trainData.slice(0, currentTrainIndex), ...trainData.slice(0, currentTrainIndex),
...showNearTrain.slice(0, stationPosition), ...showNearTrain.slice(0, subTrainStationPosition),
...trainData.slice(currentTrainIndex), ...trainData.slice(currentTrainIndex),
]; ];
setTrainData(migrationTrainData); setTrainData(migrationTrainData);

View File

@ -4,6 +4,7 @@ const initialState = {
setBusAndTrainData: () => {}, setBusAndTrainData: () => {},
trainPairData: [], trainPairData: [],
setTrainPairData: () => {}, setTrainPairData: () => {},
initializeTrainPairList: () => {},
}; };
const BusAndTrainDataContext = createContext(initialState); const BusAndTrainDataContext = createContext(initialState);
@ -15,7 +16,13 @@ export const useBusAndTrainData = () => {
export const BusAndTrainDataProvider = ({ children }) => { export const BusAndTrainDataProvider = ({ children }) => {
const [busAndTrainData, setBusAndTrainData] = useState([]); const [busAndTrainData, setBusAndTrainData] = useState([]);
const [trainPairData, setTrainPairData] = 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 ( return (
<BusAndTrainDataContext.Provider <BusAndTrainDataContext.Provider
value={{ value={{
@ -23,6 +30,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
setBusAndTrainData, setBusAndTrainData,
trainPairData, trainPairData,
setTrainPairData, setTrainPairData,
initializeTrainPairList,
}} }}
> >
{children} {children}