diff --git a/MenuPage.js b/MenuPage.js
index 8c11bda..b3a20e7 100644
--- a/MenuPage.js
+++ b/MenuPage.js
@@ -15,7 +15,6 @@ import Setting from "./components/Settings/settings";
import { useFavoriteStation } from "./stateBox/useFavoriteStation";
import { optionData } from "./lib/stackOption";
import AllTrainDiagramView from "./components/AllTrainDiagramView";
-import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { useNavigation } from "@react-navigation/native";
import { news } from "./config/newsUpdate";
import { useBottomTabBarHeight } from "@react-navigation/bottom-tabs";
@@ -25,7 +24,6 @@ export function MenuPage() {
const { favoriteStation, setFavoriteStation } = useFavoriteStation();
const { height, width } = useWindowDimensions();
const tabBarHeight = useBottomTabBarHeight();
- const { getCurrentTrain } = useCurrentTrain();
const navigation = useNavigation();
const { addListener } = navigation;
useEffect(() => {
@@ -86,7 +84,7 @@ export function MenuPage() {
headerTransparent: true,
}}
children={() => (
-
+
)}
/>
diff --git a/components/Menu/Carousel/CarouselBox.tsx b/components/Menu/Carousel/CarouselBox.tsx
index 1315417..950acec 100644
--- a/components/Menu/Carousel/CarouselBox.tsx
+++ b/components/Menu/Carousel/CarouselBox.tsx
@@ -1,25 +1,25 @@
import Sign from "@/components/駅名表/Sign";
-import React, { useEffect, useState } from "react";
+import React, { useEffect, useRef, useState } from "react";
import { AS } from "@/storageControl";
import { useWindowDimensions, View, LayoutAnimation } from "react-native";
-import Carousel from "react-native-reanimated-carousel";
+import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel";
import { SheetManager } from "react-native-actions-sheet";
import { StationNumber } from "../StationPagination";
import { SimpleDot } from "../SimpleDot";
export const CarouselBox = ({
originalStationList,
- allStationData,
- currentStation,
- setSelectedCurrentStation,
- carouselRef,
- selectedCurrentStation,
+ listUpStation,
+ nearPositionStation,
+ setListIndex,
+ listIndex,
navigate,
}) => {
+ const carouselRef = useRef(null);
const { height, width } = useWindowDimensions();
const [dotButton, setDotButton] = useState(false);
const oPSign = () => {
const payload = {
- currentStation: allStationData[selectedCurrentStation],
+ currentStation: listUpStation[listIndex],
navigate,
goTo: "menu",
//@ts-ignore
@@ -46,6 +46,13 @@ export const CarouselBox = ({
setDotButton(data === "true");
});
}, []);
+ useEffect(() => {
+ if (!carouselRef.current) return;
+ carouselRef?.current.scrollTo({
+ count: listIndex - carouselRef.current.getCurrentIndex(),
+ animated: true,
+ });
+ }, [listIndex]);
const RenderItem = ({ item, index }) => {
return (
@@ -73,7 +80,7 @@ export const CarouselBox = ({
{originalStationList &&
- allStationData.map((d, index) => {
- const active = index == selectedCurrentStation;
+ listUpStation.map((d, index) => {
+ const active = index == listIndex;
const numberKey = d[0].StationNumber + index;
return dotButton ? (
setSelectedCurrentStation(index)}
+ onPress={() => setListIndex(index)}
currentStation={d}
active={active}
key={numberKey}
/>
) : (
setSelectedCurrentStation(index)}
+ onPress={() => setListIndex(index)}
active={active}
key={numberKey}
/>
diff --git a/components/発車時刻表/LED_vidion.js b/components/発車時刻表/LED_vidion.js
index 3b4e86f..2ebce12 100644
--- a/components/発車時刻表/LED_vidion.js
+++ b/components/発車時刻表/LED_vidion.js
@@ -42,44 +42,43 @@ import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
* 9062D 四国まんなか千年ものがたり(臨時?)
*/
export default function LED_vision(props) {
- const { station, getCurrentTrain, navigate, openStationACFromEachTrainInfo } =
- props;
- const { currentTrain } = useCurrentTrain();
+ const { station, navigate, openStationACFromEachTrainInfo } = props;
+ const { getCurrentTrain, currentTrain } = useCurrentTrain();
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
const [finalSwitch, setFinalSwitch] = useState(false);
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false);
const [isInfoArea, setIsInfoArea] = useState(false);
const { areaInfo, areaStationID } = useAreaInfo();
- const { allTrainDiagram: trainDiagram } = useAllTrainDiagram();
+ const { allTrainDiagram } = useAllTrainDiagram();
useEffect(() => {
AS.getItem("LEDSettings/trainIDSwitch").then((data) => {
setTrainIDSwitch(data === "true");
});
AS.getItem("LEDSettings/trainDescriptionSwitch").then((data) => {
- setTrainDescriptionSwitch(data == "true");
+ setTrainDescriptionSwitch(data === "true");
});
AS.getItem("LEDSettings/finalSwitch").then((data) => {
- setFinalSwitch(data == "true");
+ setFinalSwitch(data === "true");
});
}, []);
useEffect(() => {
// 現在の駅に停車するダイヤを作成する副作用[列車ダイヤと現在駅情報]
- if (!trainDiagram) {
+ if (!allTrainDiagram) {
setStationDiagram({});
return;
}
let returnData = {};
- Object.keys(trainDiagram).forEach((key) => {
- if (trainDiagram[key].match(station[0].Station_JP + ",")) {
- returnData[key] = trainDiagram[key];
+ Object.keys(allTrainDiagram).forEach((key) => {
+ if (allTrainDiagram[key].match(station[0].Station_JP + ",")) {
+ returnData[key] = allTrainDiagram[key];
}
});
setStationDiagram(returnData);
setIsInfoArea(station.some((s) => areaStationID.includes(s.StationNumber)));
- }, [trainDiagram, station]);
+ }, [allTrainDiagram, station]);
const [trainTimeAndNumber, setTrainTimeAndNumber] = useState(null);
diff --git a/menu.js b/menu.js
index 9732fa4..393a305 100644
--- a/menu.js
+++ b/menu.js
@@ -27,7 +27,7 @@ configureReanimatedLogger({
level: ReanimatedLogLevel.error, // Set the log level to error
strict: true, // Reanimated runs in strict mode by default
});
-export default function Menu({ getCurrentTrain, scrollRef }) {
+export default function Menu({scrollRef }) {
const { navigate, addListener, isFocused } = useNavigation();
const { favoriteStation } = useFavoriteStation();
const { originalStationList } = useStationList();
@@ -95,28 +95,17 @@ export default function Menu({ getCurrentTrain, scrollRef }) {
};
let returnDataBase = lineList
- .map((d) => {
- return findStationEachLine(originalStationList[d]);
- })
- .filter((d) => {
- return d.length > 0;
- })
+ .map((d) => findStationEachLine(originalStationList[d]))
+ .filter((d) => d.length > 0)
.reduce((pre, current) => {
pre.push(...current);
return pre;
- }, []);
-
- if (returnDataBase.length) {
- const returnData = returnDataBase.map((d) => [d]);
- setNearPositionStation(returnData);
- } else {
- setNearPositionStation([]);
- }
+ }, []).map((d) => [d]);
+ setNearPositionStation(returnDataBase.length ? returnDataBase : []);
};
const [nearPositionStation, setNearPositionStation] = useState([]); //第三要素
- const carouselRef = useRef();
const [listIndex, setListIndex] = useState(0);
const [listUpStation, setListUpStation] = useState([]);
@@ -137,14 +126,6 @@ export default function Menu({ getCurrentTrain, scrollRef }) {
setListIndex(count);
}
}, [listIndex, nearPositionStation, listUpStation]);
- useEffect(() => {
- if (!carouselRef.current) return;
- carouselRef?.current.scrollTo({
- count: listIndex - carouselRef.current.getCurrentIndex(),
- animated: true,
- });
- }, [listIndex]);
-
useEffect(() => {
if (originalStationList == undefined) return;
if (listUpStation.length == 0) return;
@@ -211,18 +192,16 @@ export default function Menu({ getCurrentTrain, scrollRef }) {
{listUpStation[listIndex] && (
{}}
/>