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

View File

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

View File

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

View File

@ -41,52 +41,13 @@ export default function Apps() {
const { navigate } = useNavigation(); const { navigate } = useNavigation();
const { isLandscape } = useDeviceOrientationChange(); const { isLandscape } = useDeviceOrientationChange();
const handleLayout = () => {}; const handleLayout = () => {};
const { setInjectJavaScript, mapsStationData } = useTrainMenu(); const {
setInjectJavaScript,
//画面表示関連
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(
mapSwitch, mapSwitch,
iconSetting, trainInfo,
stationMenu, setTrainInfo,
trainMenu originalStationList,
); } = useTrainMenu();
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 });
}, []);
const openStationACFromEachTrainInfo = async (stationName) => { const openStationACFromEachTrainInfo = async (stationName) => {
await SheetManager.hide("EachTrainInfo"); await SheetManager.hide("EachTrainInfo");
@ -151,7 +112,6 @@ export default function Apps() {
data: trainInfo.trainNum ? trainInfo : undefined, data: trainInfo.trainNum ? trainInfo : undefined,
openStationACFromEachTrainInfo, openStationACFromEachTrainInfo,
from: "Train", from: "Train",
setTrainInfo,
navigate, navigate,
}} }}
/> />
@ -163,7 +123,6 @@ export default function Apps() {
setInjectJavaScript(""); setInjectJavaScript("");
navigate("trainMenu", { webview }); navigate("trainMenu", { webview });
}} }}
mapSwitch={mapSwitch == "true" ? "flex" : "none"}
/> />
)} )}
{isLandscape && trainInfo.trainNum && ( {isLandscape && trainInfo.trainNum && (
@ -182,10 +141,9 @@ export default function Apps() {
<ReloadButton <ReloadButton
onPress={() => Updates.reloadAsync()} onPress={() => Updates.reloadAsync()}
right={isLandscape && trainInfo.trainNum ? (width / 100) * 40 : 0} right={isLandscape && trainInfo.trainNum ? (width / 100) * 40 : 0}
LoadError={LoadError}
/> />
) : ( ) : (
<NewMenu LoadError={LoadError} /> <NewMenu/>
)} )}
</View> </View>
); );

View File

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

View File

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

View File

@ -18,11 +18,10 @@ type stylesType = {
type ReloadButton = { type ReloadButton = {
onPress: () => void; onPress: () => void;
right: number; 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 = { const styles: stylesType = {
touch: { touch: {
position: "absolute", position: "absolute",

View File

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

View File

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

View File

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

View File

@ -1,5 +1,11 @@
import React, { createContext, useContext, useState, useEffect } from "react"; import React, { createContext, useContext, useState, useEffect } from "react";
import { AS, ASCore } from "../storageControl";
import { getStationList } from "../lib/getStationList";
import { getStationList2 } from "../lib/getStationList2"; import { getStationList2 } from "../lib/getStationList2";
import { injectJavascriptData } from "../lib/webViewInjectjavascript";
const initialState = { const initialState = {
selectedLine: undefined, selectedLine: undefined,
setSelectedLine: () => {}, setSelectedLine: () => {},
@ -7,6 +13,25 @@ const initialState = {
setMapsStationData: () => {}, setMapsStationData: () => {},
injectJavaScript: "", injectJavaScript: "",
setInjectJavaScript: () => {}, 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); const TrainMenuContext = createContext(initialState);
@ -20,10 +45,58 @@ export const TrainMenuProvider = ({ children }) => {
const [mapsStationData, setMapsStationData] = useState(undefined); const [mapsStationData, setMapsStationData] = useState(undefined);
const [injectJavaScript, setInjectJavaScript] = useState(); 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(() => { useEffect(() => {
getStationList2().then(setMapsStationData); 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 ( return (
<TrainMenuContext.Provider <TrainMenuContext.Provider
value={{ value={{
@ -33,6 +106,21 @@ export const TrainMenuProvider = ({ children }) => {
setMapsStationData, setMapsStationData,
injectJavaScript, injectJavaScript,
setInjectJavaScript, setInjectJavaScript,
iconSetting,
setIconSetting,
mapSwitch,
setMapSwitch,
stationMenu,
setStationMenu,
LoadError,
setLoadError,
trainInfo,
setTrainInfo,
originalStationList,
setOriginalStationList,
trainMenu,
setTrainMenu,
injectJavascript,
}} }}
> >
{children} {children}