From 556b04e3b09e11458860263d9b89a679c094f3fc Mon Sep 17 00:00:00 2001 From: harukin-DeskMini Date: Mon, 30 Jan 2023 02:51:57 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E3=82=A2=E3=82=A4=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E5=87=A6=E7=90=86=E7=94=A8function=E5=88=86=E9=9B=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/App.js b/App.js index 04675dc..d17f794 100644 --- a/App.js +++ b/App.js @@ -35,12 +35,12 @@ export default function App() { , + tabBarIcon: initIcon("barchart", "AntDesign"), }} /> , + tabBarIcon: initIcon("ios-radio", "Ionicons"), }} /> , + tabBarIcon: initIcon("md-train", "Ionicons"), }} /> ); } -const top = ({ navigation }) => { + +const initIcon = (name, type, props) => { + switch (type) { + case "Ionicons": + return ({ focused, color, size }) => ( + + ); + case "AntDesign": + return ({ focused, color, size }) => ( + + ); + } +}; + +const Top = ({ navigation }) => { const webview = useRef(); //地図用 const [mapsStationData, setMapsStationData] = useState(undefined); + useEffect(() => { getStationList2().then(setMapsStationData); }, []); + useEffect(() => { const unsubscribe = navigation.addListener("tabLongPress", (e) => { navigation.navigate("favoriteList"); From 746c996cba22de5e0db7af0340c2cc7b65946923 Mon Sep 17 00:00:00 2001 From: harukin-DeskMini Date: Mon, 30 Jan 2023 03:02:00 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E5=85=A8=E3=82=B3=E3=83=B3=E3=83=9D?= =?UTF-8?q?=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88=E3=82=92component=E3=81=8B?= =?UTF-8?q?=E3=82=89child=E3=81=B8=E7=A7=BB=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/App.js b/App.js index d17f794..58bf0f5 100644 --- a/App.js +++ b/App.js @@ -10,10 +10,10 @@ import { Platform, UIManager } from "react-native"; import { UpdateAsync } from "./UpdateAsync.js"; import { getStationList2 } from "./lib/getStationList2"; import Apps from "./Apps"; -import tndView from "./ndView"; +import TNDView from "./ndView"; import TrainBase from "./trainbaseview"; import HowTo from "./howto"; -import menu from "./menu"; +import Menu from "./menu"; import News from "./components/news.js"; import Setting from "./components/settings.js"; import TrainMenu from "./components/trainMenu.js"; @@ -35,40 +35,43 @@ export default function App() { + > + {(props) => } + + > + {(props) => } + + > + {(props) => } + ); } -const initIcon = (name, type, props) => { +const initIcon = (name, type) => { switch (type) { case "Ionicons": return ({ focused, color, size }) => ( @@ -161,22 +164,24 @@ const Top = ({ navigation }) => { ); }; -function menuPage() { +function MenuPage() { return ( - + > + {(props) => } + + + {(props) => } + + > + {(props) => } + ); } From 7dc72ef433745388e6a31b06b1811e972896ae27 Mon Sep 17 00:00:00 2001 From: harukin-DeskMini Date: Mon, 30 Jan 2023 03:32:30 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E3=81=B5=E3=81=81=E3=81=BCstate=E3=82=92?= =?UTF-8?q?=E3=83=88=E3=83=83=E3=83=97=E9=9A=8E=E5=B1=A4=E3=81=AB=E7=A7=BB?= =?UTF-8?q?=E5=8B=95=E3=81=97=E5=90=84=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC?= =?UTF-8?q?=E3=83=8D=E3=83=B3=E3=83=88=E3=81=A7=E5=85=B1=E6=9C=89=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.js | 52 ++++++++++++++++--- Apps.js | 9 +++- .../StationDeteilView.js | 10 +++- components/FavoriteList.js | 20 +++---- components/駅名表/Sign.js | 21 ++++---- menu.js | 6 +++ 6 files changed, 84 insertions(+), 34 deletions(-) diff --git a/App.js b/App.js index 58bf0f5..bfa3ca2 100644 --- a/App.js +++ b/App.js @@ -9,6 +9,7 @@ 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"; @@ -29,6 +30,16 @@ 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 ( @@ -42,7 +53,13 @@ export default function App() { tabBarIcon: initIcon("barchart", "AntDesign"), }} > - {(props) => } + {(props) => ( + + )} - {(props) => } + {(props) => ( + + )} { } }; -const Top = ({ navigation }) => { +const Top = ({ navigation, favoriteStation, setFavoriteStation }) => { const webview = useRef(); //地図用 @@ -116,7 +139,14 @@ const Top = ({ navigation }) => { headerTransparent: true, }} > - {(props) => } + {(props) => ( + + )} { ...TransitionPresets.SlideFromRightIOS, }} > - {(props) => } + {(props) => } { {...props} webview={webview} stationData={mapsStationData} + favoriteStation={favoriteStation} + setFavoriteStation={setFavoriteStation} /> )} ); }; -function MenuPage() { +function MenuPage({ favoriteStation, setFavoriteStation }) { return ( - {(props) => } + {(props) => ( + + )} {(props) => } diff --git a/Apps.js b/Apps.js index 25d1446..5f7ed77 100644 --- a/Apps.js +++ b/Apps.js @@ -19,7 +19,12 @@ import { getStationList2 } from "./lib/getStationList2"; import StatusbarDetect from './StatusbarDetect'; var Status = StatusbarDetect(); */ -export default function Apps({ navigation, webview }) { +export default function Apps({ + navigation, + webview, + favoriteStation, + setFavoriteStation, +}) { const { navigate } = navigation; var urlcache = ""; @@ -192,6 +197,8 @@ export default function Apps({ navigation, webview }) { StationBoardAcSR={StationBoardAcSR} currentStation={stationBoardData} originalStationList={originalStationList} + favoriteStation={favoriteStation} + setFavoriteStation={setFavoriteStation} /> ); diff --git a/components/ActionSheetComponents/StationDeteilView.js b/components/ActionSheetComponents/StationDeteilView.js index 6d1ccd0..bc0fafa 100644 --- a/components/ActionSheetComponents/StationDeteilView.js +++ b/components/ActionSheetComponents/StationDeteilView.js @@ -7,7 +7,13 @@ import Sign from "../../components/駅名表/Sign"; import { TicketBox } from "../atom/TicketBox"; export const StationDeteilView = (props) => { - const { StationBoardAcSR, currentStation, originalStationList } = props; + const { + StationBoardAcSR, + currentStation, + originalStationList, + favoriteStation, + setFavoriteStation, + } = props; return ( { Linking.openURL(currentStation[0].StationTimeTable)} /> )} diff --git a/components/FavoriteList.js b/components/FavoriteList.js index daf7d5d..3b946a2 100644 --- a/components/FavoriteList.js +++ b/components/FavoriteList.js @@ -8,20 +8,14 @@ import { AS } from "../storageControl"; import { news } from "../config/newsUpdate"; import { getStationList, lineList } from "../lib/getStationList"; var Status = StatusbarDetect(); -export default function FavoriteList({ navigation, webview, stationData }) { +export default function FavoriteList({ + navigation, + webview, + stationData, + favoriteStation, + setFavoriteStation, +}) { const { navigate } = navigation; - const [favoriteStation, setFavoriteStation] = useState([]); - - useEffect(() => { - AS.getItem("favoriteStation") - .then((d) => { - console.log(d); - const returnData = JSON.parse(d); - console.log(returnData); - setFavoriteStation(returnData); - }) - .catch((d) => console.log(d)); - }, []); return ( diff --git a/components/駅名表/Sign.js b/components/駅名表/Sign.js index 0e5a5c3..8c1fc1f 100644 --- a/components/駅名表/Sign.js +++ b/components/駅名表/Sign.js @@ -17,24 +17,19 @@ import { useInterval } from "../../lib/useInterval"; import { AS } from "../../storageControl"; export default function Sign(props) { - const { currentStation, originalStationList, oP } = props; + const { + currentStation, + originalStationList, + oP, + favoriteStation, + setFavoriteStation, + } = props; const [nexPrePosition, setNexPrePosition] = useState(0); const [preStation, setPreStation] = useState(); const [nexStation, setNexStation] = useState(); const [testButtonStatus, setTestButtonStatus] = useState(false); - const [favoriteStation, setFavoriteStation] = useState([]); - useEffect(() => { - AS.getItem("favoriteStation") - .then((d) => { - console.log(d); - const returnData = JSON.parse(d); - console.log(returnData); - setFavoriteStation(returnData); - }) - .catch((d) => console.log(d)); - }, []); useEffect(() => { const isFavorite = favoriteStation.filter((d) => { const compare = JSON.stringify(d); @@ -116,12 +111,14 @@ export default function Sign(props) { } }); AS.setItem("favoriteStation", JSON.stringify(otherData)); + setFavoriteStation(otherData); } else { lottieRef.current.play(7, 35); let ret = favoriteStation; console.log(currentStation); ret.push(currentStation); AS.setItem("favoriteStation", JSON.stringify(ret)); + setFavoriteStation(ret); } setTestButtonStatus(!testButtonStatus); }} diff --git a/menu.js b/menu.js index fe31a17..6deeb0a 100644 --- a/menu.js +++ b/menu.js @@ -38,6 +38,8 @@ import useInterval from "./lib/useInterval"; export default function Menu(props) { const { navigation: { navigate }, + favoriteStation, + setFavoriteStation, } = props; const JRSTraInfoEXAcSR = useRef(null); const StationBoardAcSR = useRef(null); @@ -162,6 +164,8 @@ export default function Menu(props) { @@ -458,6 +462,8 @@ export default function Menu(props) { StationBoardAcSR={StationBoardAcSR} currentStation={currentStation} originalStationList={originalStationList} + favoriteStation={favoriteStation} + setFavoriteStation={setFavoriteStation} />