This commit is contained in:
harukin-expo-dev-env 2024-08-20 03:31:47 +00:00
parent 4085ee3675
commit 229a7ffe5e
3 changed files with 18 additions and 23 deletions

6
Top.js
View File

@ -13,7 +13,7 @@ import FavoriteList from "./components/FavoriteList.js";
import { optionData } from "./lib/stackOption.js"; import { optionData } from "./lib/stackOption.js";
import { useNavigation } from "@react-navigation/native"; import { useNavigation } from "@react-navigation/native";
import { useCurrentTrain } from "./stateBox/useCurrentTrain.js"; import { useCurrentTrain } from "./stateBox/useCurrentTrain.js";
import { AS } from "./storageControl.js"; import { ASCore } from "./storageControl.js";
import { useTrainMenu } from "./stateBox/useTrainMenu"; import { useTrainMenu } from "./stateBox/useTrainMenu";
const Stack = createStackNavigator(); const Stack = createStackNavigator();
export const Top = ({ navigationRef }) => { export const Top = ({ navigationRef }) => {
@ -28,10 +28,6 @@ export const Top = ({ navigationRef }) => {
getStationList2().then(setMapsStationData); getStationList2().then(setMapsStationData);
}, []); }, []);
const [mapSwitch, setMapSwitch] = React.useState("false"); 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(() => { useEffect(() => {
//地図スイッチ //地図スイッチ
ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" }); ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" });

View File

@ -11,7 +11,7 @@ import Constants from "expo-constants";
import { Ionicons } from "@expo/vector-icons"; import { Ionicons } from "@expo/vector-icons";
import * as Updates from "expo-updates"; import * as Updates from "expo-updates";
import { AS } from "../storageControl"; import { AS, ASCore } from "../storageControl";
import { news } from "../config/newsUpdate"; import { news } from "../config/newsUpdate";
import { getStationList, lineList } from "../lib/getStationList"; import { getStationList, lineList } from "../lib/getStationList";
import { injectJavascriptData } from "../lib/webViewInjectjavascript"; import { injectJavascriptData } from "../lib/webViewInjectjavascript";
@ -36,7 +36,7 @@ export default function Apps() {
const { navigate } = useNavigation(); const { navigate } = useNavigation();
const { isLandscape } = useDeviceOrientationChange(); const { isLandscape } = useDeviceOrientationChange();
const handleLayout = () => {}; const handleLayout = () => {};
const { setInjectJavaScript, mapsStationData: stationData } = useTrainMenu(); const { setInjectJavaScript, mapsStationData } = useTrainMenu();
//画面表示関連 //画面表示関連
const [iconSetting, setIconSetting] = useState(undefined); const [iconSetting, setIconSetting] = useState(undefined);
@ -63,10 +63,6 @@ export default function Apps() {
stationMenu, stationMenu,
trainMenu 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(() => { useEffect(() => {
//ニュース表示 //ニュース表示
@ -79,13 +75,13 @@ export default function Apps() {
useEffect(() => { 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) => { const openStationACFromEachTrainInfo = async (stationName) => {
@ -127,7 +123,7 @@ export default function Apps() {
{!trainInfo.trainNum && isLandscape ? ( {!trainInfo.trainNum && isLandscape ? (
<TrainMenu <TrainMenu
webview={webview} webview={webview}
stationData={stationData} stationData={mapsStationData}
navigation={{ navigate: null }} navigation={{ navigate: null }}
style={{ style={{
width: (width / 100) * 40, width: (width / 100) * 40,
@ -194,17 +190,13 @@ export default function Apps() {
LoadError={LoadError} LoadError={LoadError}
/> />
) : ( ) : (
<NewMenu <NewMenu LoadError={LoadError} />
webview={webview}
isLandscape={isLandscape}
LoadError={LoadError}
mapSwitch={mapSwitch}
/>
)} )}
</View> </View>
); );
} }
const NewMenu = ({ webview, LoadError }) => { const NewMenu = ({ LoadError }) => {
const { webview } = useCurrentTrain();
const { width } = useWindowDimensions(); const { width } = useWindowDimensions();
return ( return (
<View <View

View File

@ -1,4 +1,5 @@
import storage from "./storageConfig.js"; import storage from "./storageConfig.js";
import * as Updates from "expo-updates";
export const AS = { export const AS = {
getItem: (key) => storage.load({ key }), getItem: (key) => storage.load({ key }),
@ -13,3 +14,9 @@ export const AS = {
}), }),
removeItem: (key) => storage.remove({ key }), 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()));