diff --git a/components/駅名表/AddressText.tsx b/components/駅名表/AddressText.tsx index d743477..94c70cb 100644 --- a/components/駅名表/AddressText.tsx +++ b/components/駅名表/AddressText.tsx @@ -1,11 +1,13 @@ import React, { FC, useEffect } from "react"; import { Text } from "react-native"; +import { useFavoriteStation } from "../../stateBox/useFavoriteStation"; type Props = { currentStation: any[]; isMatsuyama: boolean; }; export const AddressText: FC = (props) => { const { currentStation, isMatsuyama } = props; + const {lodAddMigration} = useFavoriteStation(); const [stationAddress, setStationAddress] = React.useState(""); useEffect(() => { if (!!currentStation[0].jslodApi) { @@ -18,6 +20,8 @@ export const AddressText: FC = (props) => { ][0]["value"]; setStationAddress(c); }); + }else{ + lodAddMigration(); } }, [currentStation]); return ( diff --git a/stateBox/useFavoriteStation.js b/stateBox/useFavoriteStation.js index 7d27fed..f8899bc 100644 --- a/stateBox/useFavoriteStation.js +++ b/stateBox/useFavoriteStation.js @@ -6,9 +6,11 @@ import React, { useLayoutEffect, } from "react"; import { AS } from "../storageControl"; +import { useStationList } from "./useStationList"; const initialState = { favoriteStation: [], setFavoriteStation: () => {}, + lodAddMigration: () => {}, }; const FavoriteStationContext = createContext(initialState); @@ -19,6 +21,13 @@ export const useFavoriteStation = () => { export const FavoriteStationProvider = ({ children }) => { const [favoriteStation, setFavoriteStation] = useState([]); + const { getStationData } = useStationList(); + const lodAddMigration = () => { + const migration = favoriteStation.map((d) => { + return getStationData(d[0].Station_JP); + }); + setFavoriteStation(migration); + }; useEffect(() => { AS.getItem("favoriteStation") .then((d) => { @@ -29,7 +38,7 @@ export const FavoriteStationProvider = ({ children }) => { }, []); return ( {children} diff --git a/stateBox/useStationList.tsx b/stateBox/useStationList.tsx index 717ca60..2f66c81 100644 --- a/stateBox/useStationList.tsx +++ b/stateBox/useStationList.tsx @@ -12,10 +12,12 @@ import { getStationList } from "../lib/getStationList"; type initialStateType = { originalStationList: any[]; setOriginalStationList: React.Dispatch>; + getStationData: (id: string) => void; }; const initialState = { originalStationList: [], setOriginalStationList: () => {}, + getStationData: () => {}, }; const StationListContext = createContext(initialState); @@ -31,10 +33,22 @@ export const StationListProvider: FC = ({ children }) => { useEffect(() => { getStationList().then(setOriginalStationList); }, []); + const getStationData: (name: string) => void = (name) => { + const returnArray = []; + Object.keys(originalStationList).forEach((key) => { + originalStationList[key].forEach((station) => { + if (station.Station_JP === name) { + if(!!station.jslodApi)returnArray.push(station); + } + }); + }); + return returnArray; + + }; return ( {children}