import React, { useEffect, useRef, useState } from "react"; import { NavigationContainer } from "@react-navigation/native"; import { createStackNavigator, TransitionPresets, } from "@react-navigation/stack"; import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; import { AntDesign, Ionicons } from "@expo/vector-icons"; import { Platform, UIManager } from "react-native"; import { UpdateAsync } from "./UpdateAsync.js"; import { getStationList2 } from "./lib/getStationList2"; import { AS } from "./storageControl"; import Apps from "./Apps"; import TNDView from "./ndView"; import TrainBase from "./trainbaseview"; import HowTo from "./howto"; import Menu from "./menu"; import News from "./components/news.js"; import Setting from "./components/settings.js"; import TrainMenu from "./components/trainMenu.js"; import FavoriteList from "./components/FavoriteList.js"; import { LogBox } from "react-native"; LogBox.ignoreLogs([ "ViewPropTypes will be removed", "ColorPropType will be removed", ]); const Stack = createStackNavigator(); const Tab = createBottomTabNavigator(); if (Platform.OS === "android") { if (UIManager.setLayoutAnimationEnabledExperimental) { UIManager.setLayoutAnimationEnabledExperimental(true); } } export default function App() { useEffect(() => { UpdateAsync(); }, []); const [favoriteStation, setFavoriteStation] = useState([]); useEffect(() => { AS.getItem("favoriteStation") .then((d) => { const returnData = JSON.parse(d); setFavoriteStation(returnData); }) .catch((d) => console.log(d)); }, []); return ( {(props) => ( )} {(props) => ( )} {(props) => } ); } const initIcon = (name, type) => { switch (type) { case "Ionicons": return ({ focused, color, size }) => ( ); case "AntDesign": return ({ focused, color, size }) => ( ); } }; const Top = ({ navigation, favoriteStation, setFavoriteStation }) => { const webview = useRef(); //地図用 const [mapsStationData, setMapsStationData] = useState(undefined); useEffect(() => { getStationList2().then(setMapsStationData); }, []); useEffect(() => { const unsubscribe = navigation.addListener("tabLongPress", (e) => { navigation.navigate("favoriteList"); }); return unsubscribe; }, [navigation]); return ( {(props) => ( )} {(props) => } {(props) => } {(props) => } {(props) => ( )} {(props) => ( )} ); }; function MenuPage({ favoriteStation, setFavoriteStation }) { return ( {(props) => ( )} {(props) => } {(props) => } ); } const optionData = { gestureEnabled: true, ...TransitionPresets.ModalPresentationIOS, cardOverlayEnabled: true, headerTransparent: true, headerShown: false, };