import React, { createContext, useContext, useState, useEffect, useLayoutEffect, FC, } from "react"; import { AS } from "../storageControl"; import { useStationList } from "./useStationList"; const initialState = { favoriteStation: [], setFavoriteStation: () => {}, lodAddMigration: () => {}, }; type initialStateType = { favoriteStation: any[]; setFavoriteStation: (d:any)=>void; lodAddMigration: ()=>void; }; const FavoriteStationContext = createContext(initialState); export const useFavoriteStation = () => { return useContext(FavoriteStationContext); }; type Props = { children: React.ReactNode; }; export const FavoriteStationProvider:FC = ({ children }) => { const [favoriteStation, setFavoriteStation] = useState([]); const { getStationDataFromName } = useStationList(); const lodAddMigration = () => { const migration = favoriteStation.map((d) => { return getStationDataFromName(d[0].Station_JP); }); setFavoriteStation(migration); }; useEffect(() => { AS.getItem("favoriteStation") .then((d) => { const returnData = JSON.parse(d); setFavoriteStation(returnData); }) .catch((error) => { // エラーログを記録(開発時のみ) if (__DEV__) { console.warn('お気に入り駅の読み込みに失敗しました:', error); } }); }, []); return ( {children} ); };