diff --git a/Top.js b/Top.js index 6054b0e..b2bd3bf 100644 --- a/Top.js +++ b/Top.js @@ -13,7 +13,7 @@ import FavoriteList from "./components/FavoriteList.js"; import { optionData } from "./lib/stackOption.js"; import { useNavigation } from "@react-navigation/native"; import { useCurrentTrain } from "./stateBox/useCurrentTrain.js"; -import { AS } from "./storageControl.js"; +import { ASCore } from "./storageControl.js"; import { useTrainMenu } from "./stateBox/useTrainMenu"; const Stack = createStackNavigator(); export const Top = ({ navigationRef }) => { @@ -28,10 +28,6 @@ export const Top = ({ navigationRef }) => { getStationList2().then(setMapsStationData); }, []); const [mapSwitch, setMapSwitch] = React.useState("false"); - const ASCore = ({ k, s, d }) => - AS.getItem(k) - .then((d) => (d ? s(d) : AS.setItem(k, d))) - .catch(() => AS.setItem(k, d)); useEffect(() => { //地図スイッチ ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); diff --git a/components/Apps.js b/components/Apps.js index 38a188b..1b33f12 100644 --- a/components/Apps.js +++ b/components/Apps.js @@ -11,7 +11,7 @@ import Constants from "expo-constants"; import { Ionicons } from "@expo/vector-icons"; import * as Updates from "expo-updates"; -import { AS } from "../storageControl"; +import { AS, ASCore } from "../storageControl"; import { news } from "../config/newsUpdate"; import { getStationList, lineList } from "../lib/getStationList"; import { injectJavascriptData } from "../lib/webViewInjectjavascript"; @@ -36,7 +36,7 @@ export default function Apps() { const { navigate } = useNavigation(); const { isLandscape } = useDeviceOrientationChange(); const handleLayout = () => {}; - const { setInjectJavaScript, mapsStationData: stationData } = useTrainMenu(); + const { setInjectJavaScript, mapsStationData } = useTrainMenu(); //画面表示関連 const [iconSetting, setIconSetting] = useState(undefined); @@ -63,10 +63,6 @@ export default function Apps() { stationMenu, trainMenu ); - const ASCore = ({ k, s, d }) => - AS.getItem(k) - .then((d) => (d ? s(d) : AS.setItem(k, d).then(Updates.reloadAsync))) - .catch(() => AS.setItem(k, d).then(Updates.reloadAsync)); useEffect(() => { //ニュース表示 @@ -79,13 +75,13 @@ export default function Apps() { useEffect(() => { //列車アイコンスイッチ - ASCore({ k: "iconSwitch", s: setIconSetting, d: "true" }); + ASCore({ k: "iconSwitch", s: setIconSetting, d: "true", u: true }); //地図スイッチ - ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); + ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false", u: true }); //駅メニュースイッチ - ASCore({ k: "stationSwitch", s: setStationMenu, d: "true" }); + ASCore({ k: "stationSwitch", s: setStationMenu, d: "true", u: true }); //列車メニュースイッチ - ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true" }); + ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true", u: true }); }, []); const openStationACFromEachTrainInfo = async (stationName) => { @@ -127,7 +123,7 @@ export default function Apps() { {!trainInfo.trainNum && isLandscape ? ( ) : ( - + )} ); } -const NewMenu = ({ webview, LoadError }) => { +const NewMenu = ({ LoadError }) => { + const { webview } = useCurrentTrain(); const { width } = useWindowDimensions(); return ( storage.load({ key }), @@ -13,3 +14,9 @@ export const AS = { }), removeItem: (key) => storage.remove({ key }), }; +export const ASCore = ({ k, s, d, u }) => + AS.getItem(k) + .then((d) => + d ? s(d) : AS.setItem(k, d).then(() => u && Updates.reloadAsync()) + ) + .catch(() => AS.setItem(k, d).then(() => u && Updates.reloadAsync()));