LEDにkeyを付与してデータの整理
This commit is contained in:
parent
f26da93193
commit
427e06967c
@ -122,21 +122,21 @@ export const EachData: FC<Props> = (props) => {
|
|||||||
<TrainPositionDataDelete
|
<TrainPositionDataDelete
|
||||||
dialog={deleteDialog}
|
dialog={deleteDialog}
|
||||||
setDialog={setDeleteDialog}
|
setDialog={setDeleteDialog}
|
||||||
currentTrainData={currentTrainData}
|
{...{ currentTrainData, stationInput, stationNumberInput }}
|
||||||
stationInput={stationInput}
|
|
||||||
stationNumberInput={stationNumberInput}
|
|
||||||
/>
|
/>
|
||||||
<TrainPositionDataPush
|
<TrainPositionDataPush
|
||||||
dialog={dialog}
|
dialog={dialog}
|
||||||
setDialog={setDialog}
|
setDialog={setDialog}
|
||||||
currentTrainData={currentTrainData}
|
{...{
|
||||||
stationInput={stationInput}
|
currentTrainData,
|
||||||
stationNumberInput={stationNumberInput}
|
stationInput,
|
||||||
posInput={posInput}
|
stationNumberInput,
|
||||||
descInput={descInput}
|
posInput,
|
||||||
setPosInput={setPosInput}
|
descInput,
|
||||||
setDescInput={setDescInput}
|
setPosInput,
|
||||||
station={station}
|
setDescInput,
|
||||||
|
station,
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
style={{
|
style={{
|
||||||
@ -149,6 +149,7 @@ export const EachData: FC<Props> = (props) => {
|
|||||||
flexDirection: "row",
|
flexDirection: "row",
|
||||||
}}
|
}}
|
||||||
onPress={() => openTrainInfo(d)}
|
onPress={() => openTrainInfo(d)}
|
||||||
|
key={ d.train + "-eachData" }
|
||||||
>
|
>
|
||||||
<TrainName
|
<TrainName
|
||||||
trainName={train.trainName}
|
trainName={train.trainName}
|
||||||
@ -179,7 +180,7 @@ export const EachData: FC<Props> = (props) => {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{trainDescriptionSwitch && !!train.info && (
|
{trainDescriptionSwitch && !!train.info && (
|
||||||
<Description info={train.info} />
|
<Description info={train.info} key={d.train + "-description"} />
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -3,8 +3,8 @@ 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 } from "@expo/vector-icons";
|
||||||
|
|
||||||
export const Header = ({ getCurrentTrain }) => {
|
export const Header = () => {
|
||||||
const { currentTrainLoading, setCurrentTrainLoading } = useCurrentTrain();
|
const { currentTrainLoading, setCurrentTrainLoading,getCurrentTrain } = useCurrentTrain();
|
||||||
return (
|
return (
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { View } from "react-native";
|
import { View,useWindowDimensions } from "react-native";
|
||||||
import { widthPercentageToDP as wp } from "react-native-responsive-screen";
|
import dayjs from "dayjs";
|
||||||
import { useInterval } from "../../lib/useInterval";
|
import { useInterval } from "../../lib/useInterval";
|
||||||
import { objectIsEmpty } from "../../lib/objectIsEmpty";
|
import { objectIsEmpty } from "../../lib/objectIsEmpty";
|
||||||
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
|
import { useCurrentTrain } from "../../stateBox/useCurrentTrain";
|
||||||
@ -43,7 +43,7 @@ import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
|||||||
*/
|
*/
|
||||||
export default function LED_vision(props) {
|
export default function LED_vision(props) {
|
||||||
const { station, navigate, openStationACFromEachTrainInfo } = props;
|
const { station, navigate, openStationACFromEachTrainInfo } = props;
|
||||||
const { getCurrentTrain, currentTrain } = useCurrentTrain();
|
const { currentTrain } = useCurrentTrain();
|
||||||
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
||||||
const [finalSwitch, setFinalSwitch] = useState(false);
|
const [finalSwitch, setFinalSwitch] = useState(false);
|
||||||
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
|
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
|
||||||
@ -80,7 +80,10 @@ export default function LED_vision(props) {
|
|||||||
setIsInfoArea(station.some((s) => areaStationID.includes(s.StationNumber)));
|
setIsInfoArea(station.some((s) => areaStationID.includes(s.StationNumber)));
|
||||||
}, [allTrainDiagram, station]);
|
}, [allTrainDiagram, station]);
|
||||||
|
|
||||||
const [trainTimeAndNumber, setTrainTimeAndNumber] = useState(null);
|
/*
|
||||||
|
{lastStation: "当駅止", time: "12:34", train: "1234M"}
|
||||||
|
*/
|
||||||
|
const [trainTimeAndNumber, setTrainTimeAndNumber] = useState([]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
//現在の駅に停車する列車から時刻を切り出してLEDベースにフォーマット
|
//現在の駅に停車する列車から時刻を切り出してLEDベースにフォーマット
|
||||||
@ -141,16 +144,15 @@ export default function LED_vision(props) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const timeFiltering = (d) => {
|
const timeFiltering = (d) => {
|
||||||
const date = new Date();
|
const date = dayjs();
|
||||||
const newDate = new Date();
|
const newDate = dayjs();
|
||||||
let data = d.time.split(":");
|
let [h,m] = d.time.split(":");
|
||||||
let delay = isNaN(currentTrain.filter((t) => t.num == d.train)[0].delay)
|
let delay = isNaN(currentTrain.filter((t) => t.num == d.train)[0].delay)
|
||||||
? 0
|
? 0
|
||||||
: currentTrain.filter((t) => t.num == d.train)[0].delay;
|
: currentTrain.filter((t) => t.num == d.train)[0].delay;
|
||||||
|
|
||||||
date.setHours(parseInt(data[0]));
|
date.hour(parseInt(h)).minute(parseInt(m) + parseInt(delay));
|
||||||
date.setMinutes(parseInt(data[1]) + parseInt(delay));
|
return !(newDate.isAfter(date));
|
||||||
return !(newDate > date);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const [areaString, setAreaString] = useState("");
|
const [areaString, setAreaString] = useState("");
|
||||||
@ -182,18 +184,19 @@ export default function LED_vision(props) {
|
|||||||
}
|
}
|
||||||
setAreaStringLength(areaInfo.length);
|
setAreaStringLength(areaInfo.length);
|
||||||
}, [areaInfo]);
|
}, [areaInfo]);
|
||||||
|
const { width } = useWindowDimensions();
|
||||||
|
const adjustedWidth = width * 0.98;
|
||||||
return (
|
return (
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
width: wp("98%"),
|
width: adjustedWidth,
|
||||||
/* height: wp("98%")/10*9, */ backgroundColor: "#432",
|
/* height: wp("98%")/10*9, */ backgroundColor: "#432",
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
margin: 10,
|
margin: 10,
|
||||||
marginHorizontal: wp("1%"),
|
marginHorizontal: width * 0.01,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Header getCurrentTrain={getCurrentTrain} />
|
<Header />
|
||||||
{selectedTrain.map((d) => (
|
{selectedTrain.map((d) => (
|
||||||
<EachData
|
<EachData
|
||||||
{...{
|
{...{
|
||||||
|
Loading…
Reference in New Issue
Block a user