stationListの汎用化

This commit is contained in:
harukin-expo-dev-env 2024-12-25 13:26:36 +00:00
parent 72b82e84fe
commit ab37bb084e
4 changed files with 26 additions and 34 deletions

View File

@ -22,16 +22,8 @@ export const TrainDataView = ({
navigate,
}) => {
const { originalStationList } = useStationList();
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
const { stationList } = useStationList();
const { width, height } = useWindowDimensions();
const { isLandscape } = useDeviceOrientationChange();
const { inject } = useCurrentTrain();

View File

@ -12,7 +12,7 @@ import {
import { SheetManager } from "react-native-actions-sheet";
import { AS } from "../../storageControl";
import trainList from "../../assets/originData/trainList";
import { lineList, lineListPair } from "../../lib/getStationList";
import { lineListPair } from "../../lib/getStationList";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
import { checkDuplicateTrainData } from "../../lib/checkDuplicateTrainData";
import { getTrainType } from "../../lib/getTrainType";
@ -46,7 +46,7 @@ export const EachTrainInfoCore = ({
}) => {
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
const { currentTrain } = useCurrentTrain();
const { originalStationList } = useStationList();
const { originalStationList,stationList } = useStationList();
const { setTrainInfo } = useTrainMenu();
const [currentTrainData, setCurrentTrainData] = useState();
@ -86,15 +86,6 @@ export const EachTrainInfoCore = ({
const [showThrew, setShowThrew] = useState(false);
const [haveThrough, setHaveThrough] = useState(false);
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
// 使用例
const stopStationIDList = trainDataWidhThrough.map((i) => {
const [station, se, time] = i.split(",");

View File

@ -46,15 +46,8 @@ export const TrainPosition: FC<Props> = ({
platformNumber,
}) => {
const { currentTrain } = useCurrentTrain();
const { originalStationList } = useStationList();
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
const { stationList } = useStationList();
useEffect(() => {
fetch(
`https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}`

View File

@ -6,16 +6,19 @@ import React, {
FC,
} from "react";
import { getStationList } from "../lib/getStationList";
import { lineList } from "../lib/getStationList";
type initialStateType = {
originalStationList: any[];
originalStationList: any[][];
setOriginalStationList: React.Dispatch<React.SetStateAction<any[]>>;
getStationData: (id: string) => void;
stationList: any[];
};
const initialState = {
originalStationList: [],
originalStationList: [[]],
setOriginalStationList: () => {},
getStationData: () => {},
stationList: [],
};
const StationListContext = createContext<initialStateType>(initialState);
@ -42,10 +45,23 @@ export const StationListProvider: FC<Props> = ({ children }) => {
});
return returnArray;
};
const [stationList, setStationList] = useState<any[][]>([[]]);
useEffect(()=>{
if(originalStationList.length === 0) return;
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
setStationList(stationList)
},[originalStationList])
return (
<StationListContext.Provider
value={{ originalStationList, setOriginalStationList, getStationData }}
value={{ originalStationList, setOriginalStationList, getStationData, stationList }}
>
{children}
</StationListContext.Provider>