From 4085ee36754a46bc6832c042cd60b05b1f2077b1 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Tue, 20 Aug 2024 03:15:13 +0000 Subject: [PATCH] =?UTF-8?q?Top.js=E3=81=AE=E9=83=A8=E5=88=86=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Top.js | 52 ++++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/Top.js b/Top.js index bb9aa87..6054b0e 100644 --- a/Top.js +++ b/Top.js @@ -18,8 +18,7 @@ import { useTrainMenu } from "./stateBox/useTrainMenu"; const Stack = createStackNavigator(); export const Top = ({ navigationRef }) => { const { webview } = useCurrentTrain(); - const navigation = useNavigation(); - const { navigate, addListener } = navigation; + const { navigate, addListener } = useNavigation(); //地図用 const { setMapsStationData, injectJavaScript, setInjectJavaScript } = @@ -38,33 +37,38 @@ export const Top = ({ navigationRef }) => { ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); }, []); + + const goToFavoriteList = () => navigate("favoriteList"); + useEffect(() => { - const unsubscribe = addListener("tabLongPress", () => - navigate("favoriteList") - ); + const unsubscribe = addListener("tabLongPress", goToFavoriteList); return unsubscribe; - }, [navigation]); - useEffect(() => { - const unsubscribe = navigation.addListener("tabPress", () => { - if (navigationRef.current?.getCurrentRoute().name == "Apps") { - if (mapSwitch == "true") { - navigation.navigate("trainMenu"); - setInjectJavaScript(""); - } else { - webview.current?.injectJavaScript(`AccordionClassEvent()`); - } + }, [{ navigate, addListener }]); + + + const goToTrainMenu = () => { + if (navigationRef.current?.getCurrentRoute().name == "Apps") { + if (mapSwitch == "true") { + navigate("trainMenu"); + setInjectJavaScript(""); } else { - if (mapSwitch == "true") { - if (injectJavaScript) { - webview.current?.injectJavaScript(injectJavaScript); - setInjectJavaScript(""); - } - } - navigation.navigate("Apps"); + 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; - }, [navigation, mapSwitch, injectJavaScript]); + }, [{ navigate, addListener }, mapSwitch, injectJavaScript]); return (