Merge commit '67d2bf6c98f192e4a308383dd08032dbbb972cbf' into develop

This commit is contained in:
harukin-expo-dev-env 2025-07-05 10:50:03 +00:00
commit 156912302d
4 changed files with 77 additions and 59 deletions

View File

@ -8,11 +8,13 @@ import { useNavigation } from "@react-navigation/native";
import { useTrainMenu } from "../stateBox/useTrainMenu"; import { useTrainMenu } from "../stateBox/useTrainMenu";
import { FavoriteListItem } from "./atom/FavoriteListItem"; import { FavoriteListItem } from "./atom/FavoriteListItem";
import { BigButton } from "./atom/BigButton"; import { BigButton } from "./atom/BigButton";
import { useStationList } from "@/stateBox/useStationList";
export const FavoriteList: FC = () => { export const FavoriteList: FC = () => {
const { favoriteStation } = useFavoriteStation(); const { favoriteStation } = useFavoriteStation();
const { webview } = useCurrentTrain(); const { webview } = useCurrentTrain();
const { navigate, addListener, goBack, canGoBack } = useNavigation(); const { navigate, addListener, goBack, canGoBack } = useNavigation();
const { mapsStationData: stationData } = useTrainMenu(); const { mapsStationData: stationData } = useTrainMenu();
const { getInjectJavascriptAddress } = useStationList();
useEffect(() => { useEffect(() => {
const unsubscribe = addListener("tabPress", goToTrainMenu); const unsubscribe = addListener("tabPress", goToTrainMenu);
@ -38,27 +40,16 @@ export const FavoriteList: FC = () => {
</Text> </Text>
<ScrollView style={{ height: "100%", backgroundColor: "white" }}> <ScrollView style={{ height: "100%", backgroundColor: "white" }}>
{favoriteStation {favoriteStation
.filter((d) => d[0].StationMap)
.map((currentStation) => { .map((currentStation) => {
return ( return (
<FavoriteListItem <FavoriteListItem
currentStation={currentStation} currentStation={currentStation}
onPress={() => { onPress={() => {
const getStationLine = (now) => { const scriptString = getInjectJavascriptAddress(
const returnData = Object.keys(stationData).filter((d) => { currentStation[0].StationNumber
const cache = stationData[d].findIndex(
(data) => data.Station_JP == now.Station_JP
);
return cache != -1;
});
return returnData[0];
};
const lineName = getStationLine(currentStation[0]);
webview.current?.injectJavaScript(
`MoveDisplayStation('${lineName}_${currentStation[0].MyStation}_${currentStation[0].Station_JP}');
document.getElementById("disp").insertAdjacentHTML("afterbegin", "<div />");`
); );
if (!scriptString) return;
webview.current?.injectJavaScript(scriptString);
goBack(); goBack();
if (canGoBack()) goBack(); if (canGoBack()) goBack();
}} }}

View File

@ -1,10 +1,19 @@
import { View, Text } from "react-native"; import { View, Text } from "react-native";
import { useCurrentTrain } from "../../../stateBox/useCurrentTrain"; import { useCurrentTrain } from "../../../stateBox/useCurrentTrain";
import LottieView from "lottie-react-native"; import LottieView from "lottie-react-native";
import { Ionicons } from "@expo/vector-icons"; import { Ionicons, AntDesign } from "@expo/vector-icons";
import { useStationList } from "@/stateBox/useStationList";
import { useNavigation } from "@react-navigation/native";
export const Header = () => { export const Header = ({ station }) => {
const { currentTrainLoading, setCurrentTrainLoading,getCurrentTrain } = useCurrentTrain(); const {
currentTrainLoading,
setCurrentTrainLoading,
getCurrentTrain,
inject,
} = useCurrentTrain();
const { getInjectJavascriptAddress } = useStationList();
const { navigate } = useNavigation();
return ( return (
<View <View
style={{ style={{
@ -15,7 +24,24 @@ export const Header = () => {
flexDirection: "row", flexDirection: "row",
}} }}
> >
<View style={{ flex: 1 }}></View> <View style={{ flex: 1, flexDirection: "column", alignItems: "center" }}>
<AntDesign
name={"barchart"}
size={20}
color={"white"}
style={{
borderWidth: 1,
borderColor: "white",
padding: 10,
borderRadius: 10,
}}
onPress={() => {
navigate("positions", { screen: "Apps" });
const script = getInjectJavascriptAddress(station.StationNumber);
inject(script);
}}
/>
</View>
<View style={{}}> <View style={{}}>
<Text style={{ fontSize: 25, color: "white", fontWeight: "bold" }}> <Text style={{ fontSize: 25, color: "white", fontWeight: "bold" }}>
次の列車 次の列車

View File

@ -222,7 +222,7 @@ export default function LED_vision(props) {
marginHorizontal: width * 0.01, marginHorizontal: width * 0.01,
}} }}
> >
<Header /> <Header station={station[0]} />
{selectedTrain.map((d) => ( {selectedTrain.map((d) => (
<EachData <EachData
{...{ {...{

View File

@ -15,6 +15,7 @@ const initialState = {
currentTrainLoading: "loading", currentTrainLoading: "loading",
setCurrentTrainLoading: () => {}, setCurrentTrainLoading: () => {},
getCurrentTrain: () => {}, getCurrentTrain: () => {},
inject: () => {},
}; };
const CurrentTrainContext = createContext(initialState); const CurrentTrainContext = createContext(initialState);