import React, { useEffect, useRef, useState } from "react"; import { createStackNavigator, TransitionPresets, } from "@react-navigation/stack"; import { getStationList2 } from "./lib/getStationList2"; import Apps from "./components/Apps"; import TrainBase from "./components/trainbaseview"; import HowTo from "./howto"; import News from "./components/news"; import TrainMenu from "./components/trainMenu"; import FavoriteList from "./components/FavoriteList"; import { optionData } from "./lib/stackOption"; import { useNavigation } from "@react-navigation/native"; import { useCurrentTrain } from "./stateBox/useCurrentTrain"; import { ASCore } from "./storageControl"; import { useTrainMenu } from "./stateBox/useTrainMenu"; const Stack = createStackNavigator(); export const Top = ({ navigationRef }) => { const { webview } = useCurrentTrain(); const { navigate, addListener } = useNavigation(); //地図用 const { setMapsStationData, injectJavaScript, setInjectJavaScript } = useTrainMenu(); useEffect(() => { getStationList2().then(setMapsStationData); }, []); const [mapSwitch, setMapSwitch] = React.useState("false"); useEffect(() => { //地図スイッチ ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); }, []); const goToFavoriteList = () => navigate("favoriteList"); useEffect(() => { const unsubscribe = addListener("tabLongPress", goToFavoriteList); return unsubscribe; }, [{ navigate, addListener }]); const goToTrainMenu = () => { if (navigationRef.current?.getCurrentRoute().name == "Apps") { if (mapSwitch == "true") { navigate("trainMenu"); setInjectJavaScript(""); } else { webview.current?.injectJavaScript(`AccordionClassEvent()`); } } else { if (mapSwitch == "true") { if (injectJavaScript) { webview.current?.injectJavaScript(injectJavaScript); setInjectJavaScript(""); } } navigate("Apps"); } }; useEffect(() => { const unsubscribe = addListener("tabPress", goToTrainMenu); return unsubscribe; }, [{ navigate, addListener }, mapSwitch, injectJavaScript]); return ( ); };