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, navigate,
}) => { }) => {
const { originalStationList } = useStationList(); const { stationList } = useStationList();
const stationList =
originalStationList &&
lineList.map((d) =>
originalStationList[d].map((a) => ({
StationNumber: a.StationNumber,
StationName: a.Station_JP,
}))
);
const { width, height } = useWindowDimensions(); const { width, height } = useWindowDimensions();
const { isLandscape } = useDeviceOrientationChange(); const { isLandscape } = useDeviceOrientationChange();
const { inject } = useCurrentTrain(); const { inject } = useCurrentTrain();

View File

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

View File

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

View File

@ -6,16 +6,19 @@ import React, {
FC, FC,
} from "react"; } from "react";
import { getStationList } from "../lib/getStationList"; import { getStationList } from "../lib/getStationList";
import { lineList } from "../lib/getStationList";
type initialStateType = { type initialStateType = {
originalStationList: any[]; originalStationList: any[][];
setOriginalStationList: React.Dispatch<React.SetStateAction<any[]>>; setOriginalStationList: React.Dispatch<React.SetStateAction<any[]>>;
getStationData: (id: string) => void; getStationData: (id: string) => void;
stationList: any[];
}; };
const initialState = { const initialState = {
originalStationList: [], originalStationList: [[]],
setOriginalStationList: () => {}, setOriginalStationList: () => {},
getStationData: () => {}, getStationData: () => {},
stationList: [],
}; };
const StationListContext = createContext<initialStateType>(initialState); const StationListContext = createContext<initialStateType>(initialState);
@ -42,10 +45,23 @@ export const StationListProvider: FC<Props> = ({ children }) => {
}); });
return returnArray; 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 ( return (
<StationListContext.Provider <StationListContext.Provider
value={{ originalStationList, setOriginalStationList, getStationData }} value={{ originalStationList, setOriginalStationList, getStationData, stationList }}
> >
{children} {children}
</StationListContext.Provider> </StationListContext.Provider>