diff --git a/App.js b/App.js index 4041b6e..b7becd9 100644 --- a/App.js +++ b/App.js @@ -57,10 +57,10 @@ export default function App() { ); } export function AppContainer() { - const { areaInfo, setAreaInfo } = useAreaInfo(); - + const { areaInfo } = useAreaInfo(); + const navigationRef = React.useRef(); return ( - + @@ -73,7 +73,7 @@ export function AppContainer() { tabBarIcon: initIcon("barchart", "AntDesign"), }} > - {(props) => } + {(props) => } { - const { favoriteStation, setFavoriteStation } = useFavoriteStation(); +export const Top = ({ navigation, navigationRef }) => { const { webview, getCurrentTrain } = useCurrentTrain(); //地図用 @@ -24,14 +24,36 @@ export const Top = ({ navigation }) => { useEffect(() => { getStationList2().then(setMapsStationData); }, []); + const [mapSwitch, setMapSwitch] = React.useState("false"); + const ASCore = ({ k, s, d }) => + AS.getItem(k) + .then((d) => (d ? s(d) : AS.setItem(k, d))) + .catch(() => AS.setItem(k, d)); + useEffect(() => { + //地図スイッチ + ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); + }, []); useEffect(() => { - const unsubscribe = navigation.addListener("tabLongPress", (e) => { + const unsubscribe = navigation.addListener("tabLongPress", () => { navigation.navigate("favoriteList"); }); - return unsubscribe; }, [navigation]); + useEffect(() => { + const unsubscribe = navigation.addListener("tabPress", () => { + if (navigationRef.current?.getCurrentRoute().name == "Apps") { + if (mapSwitch == "true") { + navigation.navigate("trainMenu"); + } else { + webview.current?.injectJavaScript(`AccordionClassEvent()`); + } + } else { + navigation.navigate("Apps"); + } + }); + return unsubscribe; + }, [navigation, mapSwitch]); return (