From 5dd7ec5f7d678cc0839fd8690289c6799aa25924 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Tue, 19 Mar 2024 10:42:25 +0000 Subject: [PATCH] =?UTF-8?q?=E3=81=A1=E3=82=87=E3=81=A3=E3=81=A8=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 11 +++-- MenuPage.js | 65 +++++++++--------------------- Top.js | 11 +++-- components/AllTrainDiagramView.js | 17 +++----- components/CurrentTrainListView.js | 4 +- components/settings.js | 5 +-- menu.js | 8 ++-- trainbaseview.js | 5 ++- 8 files changed, 47 insertions(+), 79 deletions(-) diff --git a/App.js b/App.js index 4041b6e..b7cbed9 100644 --- a/App.js +++ b/App.js @@ -72,9 +72,8 @@ export function AppContainer() { gestureEnabled: true, tabBarIcon: initIcon("barchart", "AntDesign"), }} - > - {(props) => } - + component={Top} + /> - {(props) => } - + component={MenuPage} + /> + { - const unsubscribe = navigation.addListener("tabPress", (e) => { + const unsubscribe = addListener("tabPress", (e) => { AS.getItem("favoriteStation") .then((d) => { const returnData = JSON.parse(d); @@ -41,57 +44,29 @@ export function MenuPage({ navigation }) { gestureEnabled: true, headerTransparent: true, }} - > - {(props) => } - - - {(props) => } - + children={() => } + /> + - {(props) => } - + options={{ ...optionData, gestureResponseDistance: { vertical: 300 } }} + children={(props) => } + /> - {(props) => } - + options={{ ...optionData, gestureResponseDistance: { vertical: 300 } }} + component={CurrentTrainListView} + /> - {(props) => } - + options={{ ...optionData, gestureEnabled: false }} + component={AllTrainDiagramView} + /> - {(props) => } - + options={optionData} + children={(props) => } + /> ); } diff --git a/Top.js b/Top.js index 9f9486f..631d139 100644 --- a/Top.js +++ b/Top.js @@ -11,8 +11,11 @@ import News from "./components/news.js"; import TrainMenu from "./components/trainMenu.js"; import FavoriteList from "./components/FavoriteList.js"; import { optionData } from "./lib/stackOption.js"; +import { useNavigation } from "@react-navigation/native"; const Stack = createStackNavigator(); -export const Top = ({ navigation }) => { +export const Top = () => { + const navigation = useNavigation(); + const { navigate, addListener } = navigation; //地図用 const [mapsStationData, setMapsStationData] = useState(undefined); @@ -21,9 +24,9 @@ export const Top = ({ navigation }) => { }, []); useEffect(() => { - const unsubscribe = navigation.addListener("tabLongPress", (e) => { - navigation.navigate("favoriteList"); - }); + const unsubscribe = addListener("tabLongPress", (e) => + navigate("favoriteList") + ); return unsubscribe; }, [navigation]); diff --git a/components/AllTrainDiagramView.js b/components/AllTrainDiagramView.js index 9b122d2..8c2583d 100644 --- a/components/AllTrainDiagramView.js +++ b/components/AllTrainDiagramView.js @@ -1,30 +1,23 @@ -import React, { useRef, useState, useEffect } from "react"; +import React, { useState, useEffect } from "react"; import { View, Text, TouchableOpacity, - Linking, - ScrollView, FlatList, KeyboardAvoidingView, TextInput, Platform, Keyboard, } from "react-native"; -import MapView, { Marker } from "react-native-maps"; -import { MaterialCommunityIcons } from "@expo/vector-icons"; -import { useCurrentTrain } from "../stateBox/useCurrentTrain"; -import { useAreaInfo } from "../stateBox/useAreaInfo"; import { useAllTrainDiagram } from "../stateBox/useAllTrainDiagram"; import { customTrainDataDetector } from "./custom-train-data"; -import { getStationList, lineList } from "../lib/getStationList"; +import { getStationList } from "../lib/getStationList"; import { getTrainType } from "../lib/getTrainType"; -import { checkDuplicateTrainData } from "../lib/checkDuplicateTrainData"; import { SheetManager } from "react-native-actions-sheet"; -export default function AllTrainDiagramView({ navigation: { navigate } }) { - const { currentTrain } = useCurrentTrain(); - const { areaInfo } = useAreaInfo(); +import { useNavigation } from "@react-navigation/native"; +export default function AllTrainDiagramView() { + const { navigate } = useNavigation(); const { allTrainDiagram } = useAllTrainDiagram(); const [originalStationList, setOriginalStationList] = useState(); // 第一要素 const [keyList, setKeyList] = useState(); // 第二要素 diff --git a/components/CurrentTrainListView.js b/components/CurrentTrainListView.js index cc5f880..72a6a1d 100644 --- a/components/CurrentTrainListView.js +++ b/components/CurrentTrainListView.js @@ -3,7 +3,9 @@ import { View, Text, TouchableOpacity, Linking } from "react-native"; import MapView, { Marker } from "react-native-maps"; import { MaterialCommunityIcons } from "@expo/vector-icons"; import { useCurrentTrain } from "../stateBox/useCurrentTrain"; -export default function CurrentTrainListView({ navigation: { navigate } }) { +import { useNavigation } from "@react-navigation/native"; +export default function CurrentTrainListView() { + const { navigate } = useNavigation(); const { currentTrain } = useCurrentTrain(); return ( diff --git a/components/settings.js b/components/settings.js index 3115201..181687b 100644 --- a/components/settings.js +++ b/components/settings.js @@ -7,10 +7,7 @@ import { AS } from "../storageControl"; var Status = StatusbarDetect(); import { Switch } from "react-native-elements"; -export default function Setting(props) { - const { - navigation: { navigate }, - } = props; +export default function Setting() { const [iconSetting, setIconSetting] = useState(false); const [mapSwitch, setMapSwitch] = useState(false); const [stationMenu, setStationMenu] = useState(false); diff --git a/menu.js b/menu.js index b5305e2..89a87f9 100644 --- a/menu.js +++ b/menu.js @@ -37,12 +37,10 @@ import { HeaderConfig } from "./lib/HeaderConfig"; import { useFavoriteStation } from "./stateBox/useFavoriteStation"; import { SheetManager } from "react-native-actions-sheet"; import { useTrainDelayData } from "./stateBox/useTrainDelayData"; +import { useNavigation } from "@react-navigation/native"; -export default function Menu(props) { - const { - navigation: { navigate }, - getCurrentTrain, - } = props; +export default function Menu({ getCurrentTrain }) { + const { navigate } = useNavigation(); const { favoriteStation } = useFavoriteStation(); //位置情報 diff --git a/trainbaseview.js b/trainbaseview.js index d024ee3..8b85031 100644 --- a/trainbaseview.js +++ b/trainbaseview.js @@ -8,10 +8,11 @@ import { } from "react-native"; import { WebView } from "react-native-webview"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; +import { useNavigation } from "@react-navigation/native"; -export default function TrainBase({ route, navigation }) { +export default function TrainBase({ route }) { const { info, from } = route.params; - const { navigate } = navigation; + const { navigate } = useNavigation(); const webview = useRef(); const jss = `document.getElementById('Footer').style.display = 'none'; ${