diff --git a/App.js b/App.js
index 04675dc..bfa3ca2 100644
--- a/App.js
+++ b/App.js
@@ -9,11 +9,12 @@ 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 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";
@@ -29,52 +30,97 @@ 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 (
,
+ tabBarIcon: initIcon("barchart", "AntDesign"),
}}
- />
+ >
+ {(props) => (
+
+ )}
+
,
+ tabBarIcon: initIcon("ios-radio", "Ionicons"),
}}
- />
+ >
+ {(props) => (
+
+ )}
+
,
+ tabBarIcon: initIcon("md-train", "Ionicons"),
}}
- />
+ >
+ {(props) => }
+
);
}
-const top = ({ navigation }) => {
+
+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");
@@ -93,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}
/>