From a7347a18163dfd8c29f99d1583e5429f9625423a Mon Sep 17 00:00:00 2001 From: harukin-DeskMini Date: Mon, 6 Feb 2023 03:22:02 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=82=B9=E3=81=AE=E3=81=82=E3=82=8B?= =?UTF-8?q?=E9=A7=85=E3=81=A7=E3=83=87=E3=83=BC=E3=82=BF=E3=82=92=E5=87=BA?= =?UTF-8?q?=E3=81=99=E3=83=9C=E3=82=BF=E3=83=B3=E3=82=92=E8=A8=AD=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 31 +++++++++++++++++-- Apps.js | 2 ++ assets/originData/lineColorList.js | 11 +++++++ .../StationDeteilView.js | 27 ++++++++++++++-- menu.js | 2 ++ 5 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 assets/originData/lineColorList.js diff --git a/App.js b/App.js index 0163eba..31effa5 100644 --- a/App.js +++ b/App.js @@ -46,6 +46,24 @@ export default function App() { }) .catch((d) => console.log(d)); }, []); + const [busAndTrainData, setBusAndTrainData] = useState([]); + useEffect(() => { + AS.getItem("busAndTrain") + .then((d) => { + const returnData = JSON.parse(d); + setBusAndTrainData(returnData); + }) + .catch((d) => { + fetch( + "https://script.google.com/macros/s/AKfycbw0UW6ZeCDgUYFRP0zxpc_Oqfy-91dBdbWv-cM8n3narKp14IyCd2wy5HW7taXcW7E/exec" + ) + .then((d) => d.json()) + .then((d) => { + setBusAndTrainData(d); + AS.setItem("busAndTrain", JSON.stringify(d)); + }); + }); + }, []); return ( @@ -64,6 +82,7 @@ export default function App() { {...props} favoriteStation={favoriteStation} setFavoriteStation={setFavoriteStation} + busAndTrainData={busAndTrainData} /> )} @@ -81,6 +100,7 @@ export default function App() { {...props} favoriteStation={favoriteStation} setFavoriteStation={setFavoriteStation} + busAndTrainData={busAndTrainData} /> )} @@ -117,7 +137,12 @@ const initIcon = (name, type) => { } }; -const Top = ({ navigation, favoriteStation, setFavoriteStation }) => { +const Top = ({ + navigation, + favoriteStation, + setFavoriteStation, + busAndTrainData, +}) => { const webview = useRef(); //地図用 @@ -151,6 +176,7 @@ const Top = ({ navigation, favoriteStation, setFavoriteStation }) => { webview={webview} favoriteStation={favoriteStation} setFavoriteStation={setFavoriteStation} + busAndTrainData={busAndTrainData} /> )} @@ -202,7 +228,7 @@ const Top = ({ navigation, favoriteStation, setFavoriteStation }) => { ); }; -function MenuPage({ favoriteStation, setFavoriteStation }) { +function MenuPage({ favoriteStation, setFavoriteStation, busAndTrainData }) { return ( )} diff --git a/Apps.js b/Apps.js index 5f7ed77..2a2f59e 100644 --- a/Apps.js +++ b/Apps.js @@ -24,6 +24,7 @@ export default function Apps({ webview, favoriteStation, setFavoriteStation, + busAndTrainData, }) { const { navigate } = navigation; var urlcache = ""; @@ -199,6 +200,7 @@ export default function Apps({ originalStationList={originalStationList} favoriteStation={favoriteStation} setFavoriteStation={setFavoriteStation} + busAndTrainData={busAndTrainData} /> ); diff --git a/assets/originData/lineColorList.js b/assets/originData/lineColorList.js new file mode 100644 index 0000000..4358c9b --- /dev/null +++ b/assets/originData/lineColorList.js @@ -0,0 +1,11 @@ +export default { + Y: "#F5AC13", + U: "#F5AC13", + S: "#9AA7D7", + D: "#DC4586", + K: "#DC4586", + B: "#366481", + N: "#881F61", + T: "#87CA3B", + M: "#0071be", +}; diff --git a/components/ActionSheetComponents/StationDeteilView.js b/components/ActionSheetComponents/StationDeteilView.js index 3b1b05c..20a88f9 100644 --- a/components/ActionSheetComponents/StationDeteilView.js +++ b/components/ActionSheetComponents/StationDeteilView.js @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import { View, Linking } from "react-native"; import { FontAwesome, Foundation, Ionicons } from "@expo/vector-icons"; import ActionSheet from "react-native-actions-sheet"; @@ -17,7 +17,20 @@ export const StationDeteilView = (props) => { originalStationList, favoriteStation, setFavoriteStation, + busAndTrainData, } = props; + const [trainBus, setTrainBus] = useState(); + useEffect(() => { + if (!currentStation) return () => {}; + const data = busAndTrainData.filter((d) => { + return d.name === currentStation[0].Station_JP; + }); + if (data.length == 0) { + setTrainBus(); + return () => {}; + } + setTrainBus(data[0]); + }, [currentStation]); return ( { Linking.openURL(currentStation[0].StationMap) } > - GoogleMap + Map + + )} + {!trainBus || ( + } + flex={1} + onPressButton={() => Linking.openURL(trainBus.address)} + > + 平行バス )} diff --git a/menu.js b/menu.js index e8de24d..81b0173 100644 --- a/menu.js +++ b/menu.js @@ -41,6 +41,7 @@ export default function Menu(props) { navigation: { navigate }, favoriteStation, setFavoriteStation, + busAndTrainData, } = props; const JRSTraInfoEXAcSR = useRef(null); const StationBoardAcSR = useRef(null); @@ -519,6 +520,7 @@ export default function Menu(props) { originalStationList={originalStationList} favoriteStation={favoriteStation} setFavoriteStation={setFavoriteStation} + busAndTrainData={busAndTrainData} />