差分調整9

This commit is contained in:
harukin-expo-dev-env 2024-09-03 10:27:54 +00:00
parent d56c65cdb0
commit 5947bb58b8
11 changed files with 122 additions and 80 deletions

11
Top.js
View File

@ -13,7 +13,6 @@ import FavoriteList from "./components/FavoriteList";
import { optionData } from "./lib/stackOption";
import { useNavigation } from "@react-navigation/native";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { ASCore } from "./storageControl";
import { useTrainMenu } from "./stateBox/useTrainMenu";
const Stack = createStackNavigator();
export const Top = ({ navigationRef }) => {
@ -21,14 +20,7 @@ export const Top = ({ navigationRef }) => {
const { navigate, addListener } = useNavigation();
//地図用
const { injectJavaScript, setInjectJavaScript } = useTrainMenu();
const [mapSwitch, setMapSwitch] = React.useState("false");
useEffect(() => {
//地図スイッチ
ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false" });
}, []);
const { injectJavaScript, setInjectJavaScript, mapSwitch } = useTrainMenu();
const goToFavoriteList = () => navigate("favoriteList");
@ -37,6 +29,7 @@ export const Top = ({ navigationRef }) => {
return unsubscribe;
}, [{ navigate, addListener }]);
const goToTrainMenu = () => {
if (navigationRef.current?.getCurrentRoute().name == "Apps") {
if (mapSwitch == "true") {

View File

@ -31,7 +31,7 @@ import { getType } from "../../lib/eachTrainInfoCoreLib/getType";
import { searchSpecialTrain } from "../../lib/eachTrainInfoCoreLib/searchSpecialTrain";
import { openBackTrainInfo } from "../../lib/eachTrainInfoCoreLib/openBackTrainInfo";
import { ShowSpecialTrain } from "./EachTrainInfo/ShowSpecialTrain";
import { useStationList } from "../../stateBox/useStationList";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
import { HeaderText } from "./EachTrainInfoCore/HeaderText";
export const EachTrainInfoCore = ({
@ -39,12 +39,11 @@ export const EachTrainInfoCore = ({
data,
openStationACFromEachTrainInfo,
from,
setTrainInfo,
navigate,
}) => {
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);
const { currentTrain } = useCurrentTrain();
const { originalStationList } = useStationList();
const { setTrainInfo, originalStationList } = useTrainMenu();
const [currentTrainData, setCurrentTrainData] = useState();
// const [actionSheetHorizonalScroll, setActionSheetHorizonalScroll] = useState(false);

View File

@ -16,6 +16,7 @@ import { getStationList } from "../lib/getStationList";
import { getTrainType } from "../lib/getTrainType";
import { SheetManager } from "react-native-actions-sheet";
import { useNavigation } from "@react-navigation/native";
import { useTrainMenu } from "../stateBox/useTrainMenu";
export default function AllTrainDiagramView() {
const { navigate } = useNavigation();
const { allTrainDiagram } = useAllTrainDiagram();

View File

@ -41,52 +41,13 @@ export default function Apps() {
const { navigate } = useNavigation();
const { isLandscape } = useDeviceOrientationChange();
const handleLayout = () => {};
const { setInjectJavaScript, mapsStationData } = useTrainMenu();
//画面表示関連
const [iconSetting, setIconSetting] = useState(undefined);
const [mapSwitch, setMapSwitch] = useState(undefined);
const [stationMenu, setStationMenu] = useState(undefined);
const [LoadError, setLoadError] = useState(false);
//列車情報表示関連
const [trainInfo, setTrainInfo] = useState({
trainNum: undefined,
limited: undefined,
trainData: undefined,
});
//駅情報画面用
const { originalStationList, setOriginalStationList } = useStationList();
const [trainMenu, setTrainMenu] = useState("true");
//地図表示テキスト
const injectJavascript = injectJavascriptData(
const {
setInjectJavaScript,
mapSwitch,
iconSetting,
stationMenu,
trainMenu
);
useEffect(() => {
//ニュース表示
AS.getItem("status")
.then((d) => {
if (d != news) navigate("news");
})
.catch(() => navigate("news"));
}, []);
useEffect(() => {
//列車アイコンスイッチ
ASCore({ k: "iconSwitch", s: setIconSetting, d: "true", u: true });
//地図スイッチ
ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false", u: true });
//駅メニュースイッチ
ASCore({ k: "stationSwitch", s: setStationMenu, d: "true", u: true });
//列車メニュースイッチ
ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true", u: true });
}, []);
trainInfo,
setTrainInfo,
originalStationList,
} = useTrainMenu();
const openStationACFromEachTrainInfo = async (stationName) => {
await SheetManager.hide("EachTrainInfo");
@ -151,7 +112,6 @@ export default function Apps() {
data: trainInfo.trainNum ? trainInfo : undefined,
openStationACFromEachTrainInfo,
from: "Train",
setTrainInfo,
navigate,
}}
/>
@ -163,7 +123,6 @@ export default function Apps() {
setInjectJavaScript("");
navigate("trainMenu", { webview });
}}
mapSwitch={mapSwitch == "true" ? "flex" : "none"}
/>
)}
{isLandscape && trainInfo.trainNum && (
@ -182,10 +141,9 @@ export default function Apps() {
<ReloadButton
onPress={() => Updates.reloadAsync()}
right={isLandscape && trainInfo.trainNum ? (width / 100) * 40 : 0}
LoadError={LoadError}
/>
) : (
<NewMenu LoadError={LoadError} />
<NewMenu/>
)}
</View>
);

View File

@ -8,18 +8,19 @@ import {
TextStyle,
} from "react-native";
import Constants from "expo-constants";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
const top = Platform.OS == "ios" ? Constants.statusBarHeight : 0;
type MapsButtonProps = {
onPress: () => void;
mapSwitch: string;
};
type stylesType = {
touch: TouchableOpacityProps["style"];
text: TextStyle;
};
export const MapsButton: FC<MapsButtonProps> = ({ onPress, mapSwitch }) => {
export const MapsButton: FC<MapsButtonProps> = ({ onPress }) => {
const { mapSwitch } = useTrainMenu();
const styles: stylesType = {
touch: {
position: "absolute",

View File

@ -4,11 +4,13 @@ import { Ionicons } from "@expo/vector-icons";
import * as Updates from "expo-updates";
import Constants from "expo-constants";
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
const top = Platform.OS == "ios" ? Constants.statusBarHeight : 0;
export const NewMenu = ({ LoadError }) => {
export const NewMenu = () => {
const { webview } = useCurrentTrain();
const { width } = useWindowDimensions();
const { LoadError } = useTrainMenu();
return (
<View
style={{

View File

@ -18,11 +18,10 @@ type stylesType = {
type ReloadButton = {
onPress: () => void;
right: number;
mapSwitch: any;
LoadError?: boolean;
}
export const ReloadButton:FC<ReloadButton> = ({ onPress, mapSwitch, LoadError = false, right }) => {
export const ReloadButton:FC<ReloadButton> = ({ onPress, right }) => {
const { mapSwitch, LoadError = false } = useTrainMenu();
const styles: stylesType = {
touch: {
position: "absolute",

View File

@ -12,19 +12,20 @@ import { SheetManager } from "react-native-actions-sheet";
import { useNavigation } from "@react-navigation/native";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
import { stationNamePair } from "../../lib/getStationList2";
import { useStationList } from "../../stateBox/useStationList";
export const AppsWebView = ({
setLoadError,
setTrainInfo,
openStationACFromEachTrainInfo,
injectJavascript,
}) => {
const { originalStationList } = useStationList();
import { useTrainMenu } from "../../stateBox/useTrainMenu";
export const AppsWebView = ({ openStationACFromEachTrainInfo }) => {
const { webview, currentTrain } = useCurrentTrain();
const { navigate } = useNavigation();
const { favoriteStation } = useFavoriteStation();
const { isLandscape } = useDeviceOrientationChange();
const { setSelectedLine, mapsStationData: stationData } = useTrainMenu();
const {
setSelectedLine,
mapsStationData: stationData,
setLoadError,
setTrainInfo,
originalStationList,
injectJavascript,
} = useTrainMenu();
var urlcache = "";
let once = false;

View File

@ -12,13 +12,13 @@ import { StationNumberMaker } from "./StationNumberMaker";
import { NextPreStationLine } from "./NextPreStationLine";
import { LottieDelayView } from "./LottieDelayView";
import { AddressText } from "./AddressText";
import { useStationList } from "../../stateBox/useStationList";
import { useTrainMenu } from "../../stateBox/useTrainMenu";
export default function Sign(props) {
const { currentStation, oP, oLP, isCurrentStation = false } = props;
const { favoriteStation, setFavoriteStation } = useFavoriteStation();
const [nexPrePosition, setNexPrePosition] = useState(0);
const { originalStationList } = useStationList();
const { originalStationList } = useTrainMenu();
const [preStation, setPreStation] = useState();
const [nexStation, setNexStation] = useState();

View File

@ -30,12 +30,12 @@ import { useFavoriteStation } from "./stateBox/useFavoriteStation";
import { SheetManager } from "react-native-actions-sheet";
import { useTrainDelayData } from "./stateBox/useTrainDelayData";
import { useNavigation } from "@react-navigation/native";
import { useStationList } from "./stateBox/useStationList";
import { useTrainMenu } from "./stateBox/useTrainMenu";
export default function Menu({ getCurrentTrain }) {
const { navigate } = useNavigation();
const { favoriteStation } = useFavoriteStation();
const { originalStationList } = useStationList();
const { originalStationList } = useTrainMenu();
//位置情報
const [locationStatus, setLocationStatus] = useState(null);

View File

@ -1,5 +1,11 @@
import React, { createContext, useContext, useState, useEffect } from "react";
import { AS, ASCore } from "../storageControl";
import { getStationList } from "../lib/getStationList";
import { getStationList2 } from "../lib/getStationList2";
import { injectJavascriptData } from "../lib/webViewInjectjavascript";
const initialState = {
selectedLine: undefined,
setSelectedLine: () => {},
@ -7,6 +13,25 @@ const initialState = {
setMapsStationData: () => {},
injectJavaScript: "",
setInjectJavaScript: () => {},
iconSetting: undefined,
setIconSetting: () => {},
mapSwitch: undefined,
setMapSwitch: () => {},
stationMenu: undefined,
setStationMenu: () => {},
LoadError: false,
setLoadError: () => {},
trainInfo: {
trainNum: undefined,
limited: undefined,
trainData: undefined,
},
setTrainInfo: () => {},
originalStationList: [],
setOriginalStationList: () => {},
trainMenu: "true",
setTrainMenu: () => {},
injectJavascript: "",
};
const TrainMenuContext = createContext(initialState);
@ -20,10 +45,58 @@ export const TrainMenuProvider = ({ children }) => {
const [mapsStationData, setMapsStationData] = useState(undefined);
const [injectJavaScript, setInjectJavaScript] = useState();
useEffect(() => getStationList2().then(setMapsStationData), []);
//画面表示関連
const [iconSetting, setIconSetting] = useState(undefined);
const [mapSwitch, setMapSwitch] = useState(undefined);
const [stationMenu, setStationMenu] = useState(undefined);
const [LoadError, setLoadError] = useState(false);
//列車情報表示関連
const [trainInfo, setTrainInfo] = useState({
trainNum: undefined,
limited: undefined,
trainData: undefined,
});
//駅情報画面用
const [originalStationList, setOriginalStationList] = useState([]);
const [trainMenu, setTrainMenu] = useState("true");
useEffect(() => getStationList().then(setOriginalStationList), []);
//地図表示テキスト
const injectJavascript = injectJavascriptData(
mapSwitch,
iconSetting,
stationMenu,
trainMenu
);
useEffect(() => {
getStationList2().then(setMapsStationData);
}, []);
useEffect(() => {
//ニュース表示
AS.getItem("status")
.then((d) => {
if (d != news) navigate("news");
})
.catch(() => navigate("news"));
}, []);
useEffect(() => {
//列車アイコンスイッチ
ASCore({ k: "iconSwitch", s: setIconSetting, d: "true", u: true });
//地図スイッチ
ASCore({ k: "mapSwitch", s: setMapSwitch, d: "false", u: true });
//駅メニュースイッチ
ASCore({ k: "stationSwitch", s: setStationMenu, d: "true", u: true });
//列車メニュースイッチ
ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true", u: true });
}, []);
return (
<TrainMenuContext.Provider
value={{
@ -33,6 +106,21 @@ export const TrainMenuProvider = ({ children }) => {
setMapsStationData,
injectJavaScript,
setInjectJavaScript,
iconSetting,
setIconSetting,
mapSwitch,
setMapSwitch,
stationMenu,
setStationMenu,
LoadError,
setLoadError,
trainInfo,
setTrainInfo,
originalStationList,
setOriginalStationList,
trainMenu,
setTrainMenu,
injectJavascript,
}}
>
{children}