スワイプをやめてボタンを押して拡張できるように変更
This commit is contained in:
parent
6714f1d612
commit
d4ddaeb17e
@ -54,6 +54,8 @@ export const EachTrainInfo = (props) => {
|
|||||||
const [nearTrainIDList, setNearTrainIDList] = useState([]);
|
const [nearTrainIDList, setNearTrainIDList] = useState([]);
|
||||||
const [showNearTrain, setShowNearTrain] = useState([]);
|
const [showNearTrain, setShowNearTrain] = useState([]);
|
||||||
const [isConcatNear, setIsConcatNear] = useState(false);
|
const [isConcatNear, setIsConcatNear] = useState(false);
|
||||||
|
const [tailStation, setTailStation] = useState();
|
||||||
|
const [headStation, setHeadStation] = useState();
|
||||||
|
|
||||||
//裏列車探索
|
//裏列車探索
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -85,10 +87,22 @@ export const EachTrainInfo = (props) => {
|
|||||||
const TDArray = TD.split("#").filter((d) => d != "");
|
const TDArray = TD.split("#").filter((d) => d != "");
|
||||||
setShowNearTrain(TDArray);
|
setShowNearTrain(TDArray);
|
||||||
}, [data]);
|
}, [data]);
|
||||||
|
useEffect(() => {
|
||||||
|
if (trainData.length == 0) return;
|
||||||
|
showNearTrain.forEach((d) => {
|
||||||
|
const [station, se, time] = d.split(",");
|
||||||
|
|
||||||
|
console.log(trainData); //trainDataは現在の列車の停車駅リスト
|
||||||
|
console.log(station); //showNearTrainは裏列車の停車駅リスト
|
||||||
|
console.log(trainData[0]);
|
||||||
|
if (station == trainData[0].split(",")[0])
|
||||||
|
setHeadStation(trainData[0].split(",")[0]);
|
||||||
|
if (station == trainData[trainData.length - 1].split(",")[0])
|
||||||
|
setTailStation(trainData[trainData.length - 1].split(",")[0]);
|
||||||
|
});
|
||||||
|
}, [trainData, showNearTrain]);
|
||||||
|
|
||||||
const openBackTrainInfo = (stationInfo, currentTrainIndex) => {
|
const openBackTrainInfo = (stationInfo, currentTrainIndex) => {
|
||||||
console.log(trainData); //trainDataは現在の列車の停車駅リスト
|
|
||||||
console.log(showNearTrain); //showNearTrainは裏列車の停車駅リスト
|
|
||||||
const mainTrainStationPosition = trainData.findIndex(
|
const mainTrainStationPosition = trainData.findIndex(
|
||||||
(d) => d.split(",")[0] == stationInfo
|
(d) => d.split(",")[0] == stationInfo
|
||||||
);
|
);
|
||||||
@ -98,7 +112,6 @@ export const EachTrainInfo = (props) => {
|
|||||||
: mainTrainStationPosition == trainData.length - 1
|
: mainTrainStationPosition == trainData.length - 1
|
||||||
? "tail"
|
? "tail"
|
||||||
: "middle";
|
: "middle";
|
||||||
console.log(relationMain);
|
|
||||||
|
|
||||||
const subTrainStationPosition = showNearTrain.findIndex(
|
const subTrainStationPosition = showNearTrain.findIndex(
|
||||||
(d) => d.split(",")[0] == stationInfo
|
(d) => d.split(",")[0] == stationInfo
|
||||||
@ -109,7 +122,6 @@ export const EachTrainInfo = (props) => {
|
|||||||
: subTrainStationPosition == showNearTrain.length - 1
|
: subTrainStationPosition == showNearTrain.length - 1
|
||||||
? "tail"
|
? "tail"
|
||||||
: "middle";
|
: "middle";
|
||||||
console.log(relationSub);
|
|
||||||
switch (relationMain) {
|
switch (relationMain) {
|
||||||
case "head":
|
case "head":
|
||||||
if (relationSub == "head") {
|
if (relationSub == "head") {
|
||||||
@ -622,6 +634,13 @@ export const EachTrainInfo = (props) => {
|
|||||||
backgroundColor: "white",
|
backgroundColor: "white",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{headStation && !isConcatNear && (
|
||||||
|
<TouchableOpacity onPress={() => openBackTrainInfo(headStation)}>
|
||||||
|
<View>
|
||||||
|
<Text>直通列車を表示</Text>
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)}
|
||||||
{/* <LottieView
|
{/* <LottieView
|
||||||
autoPlay
|
autoPlay
|
||||||
loop
|
loop
|
||||||
@ -630,7 +649,10 @@ export const EachTrainInfo = (props) => {
|
|||||||
/>
|
/>
|
||||||
<Text>ほげほげふがふが</Text> */}
|
<Text>ほげほげふがふが</Text> */}
|
||||||
|
|
||||||
{trainData.map((i, index) => (i.split(",")[1] == "提" ? <DataFromButton i={i} /> :
|
{trainData.map((i, index) =>
|
||||||
|
i.split(",")[1] == "提" ? (
|
||||||
|
<DataFromButton i={i} />
|
||||||
|
) : (
|
||||||
<StationButton
|
<StationButton
|
||||||
i={i}
|
i={i}
|
||||||
index={index}
|
index={index}
|
||||||
@ -642,7 +664,15 @@ export const EachTrainInfo = (props) => {
|
|||||||
openBackTrainInfo={openBackTrainInfo}
|
openBackTrainInfo={openBackTrainInfo}
|
||||||
isConcatNear={isConcatNear}
|
isConcatNear={isConcatNear}
|
||||||
/>
|
/>
|
||||||
))}
|
)
|
||||||
|
)}
|
||||||
|
{tailStation && !isConcatNear && (
|
||||||
|
<TouchableOpacity onPress={() => openBackTrainInfo(tailStation)}>
|
||||||
|
<View>
|
||||||
|
<Text>直通列車を表示</Text>
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)}
|
||||||
|
|
||||||
<View style={{ flexDirection: "row" }}>
|
<View style={{ flexDirection: "row" }}>
|
||||||
<View
|
<View
|
||||||
@ -684,14 +714,18 @@ const DataFromButton = ({i}) => {
|
|||||||
<Text style={{ fontSize: 20 }}>{station}</Text>
|
<Text style={{ fontSize: 20 }}>{station}</Text>
|
||||||
<View style={{ flex: 1 }} />
|
<View style={{ flex: 1 }} />
|
||||||
<Text style={{ fontSize: 18 }}>
|
<Text style={{ fontSize: 18 }}>
|
||||||
提供元<MaterialCommunityIcons name={"open-in-new"} color="black" size={20} />
|
提供元
|
||||||
|
<MaterialCommunityIcons
|
||||||
|
name={"open-in-new"}
|
||||||
|
color="black"
|
||||||
|
size={20}
|
||||||
|
/>
|
||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</TouchableWithoutFeedback>
|
</TouchableWithoutFeedback>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
const StationButton = ({
|
const StationButton = ({
|
||||||
i,
|
i,
|
||||||
@ -744,22 +778,6 @@ const StationButton = ({
|
|||||||
);
|
);
|
||||||
const swipagleRef = useRef(null);
|
const swipagleRef = useRef(null);
|
||||||
return (
|
return (
|
||||||
<Swipeable
|
|
||||||
ref={swipagleRef}
|
|
||||||
key={station}
|
|
||||||
onSwipeableOpen={() => {
|
|
||||||
openBackTrainInfo(station, index);
|
|
||||||
swipagleRef.current.close();
|
|
||||||
}}
|
|
||||||
renderRightActions={
|
|
||||||
isConnected && !isConcatNear
|
|
||||||
? (progress, dragX) => {
|
|
||||||
//openBackTrainInfo(station, index);
|
|
||||||
return <View style={{ flex: 1, backgroundColor: "red" }}></View>;
|
|
||||||
}
|
|
||||||
: null
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<TouchableWithoutFeedback
|
<TouchableWithoutFeedback
|
||||||
onPress={() => openStationACFromEachTrainInfo(station)}
|
onPress={() => openStationACFromEachTrainInfo(station)}
|
||||||
key={station}
|
key={station}
|
||||||
@ -805,9 +823,6 @@ const StationButton = ({
|
|||||||
flexDirection: "row",
|
flexDirection: "row",
|
||||||
borderBottomWidth: 1,
|
borderBottomWidth: 1,
|
||||||
borderBottomColor: "#f0f0f0",
|
borderBottomColor: "#f0f0f0",
|
||||||
borderRightColor: isConnected && !isConcatNear ? "red" : "white",
|
|
||||||
borderRightWidth: 10,
|
|
||||||
paddingRight: 10,
|
|
||||||
flex: 1,
|
flex: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -816,8 +831,7 @@ const StationButton = ({
|
|||||||
{points && points.findIndex((d) => d == index) >= 0 ? (
|
{points && points.findIndex((d) => d == index) >= 0 ? (
|
||||||
<Text style={{ fontSize: 20, marginRight: 70 }}>🚊</Text>
|
<Text style={{ fontSize: 20, marginRight: 70 }}>🚊</Text>
|
||||||
) : null}
|
) : null}
|
||||||
{!isNaN(currentTrainData?.delay) &&
|
{!isNaN(currentTrainData?.delay) && currentTrainData?.delay != 0 && (
|
||||||
currentTrainData?.delay != 0 && (
|
|
||||||
<Text
|
<Text
|
||||||
style={{
|
style={{
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
@ -851,7 +865,6 @@ const StationButton = ({
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</TouchableWithoutFeedback>
|
</TouchableWithoutFeedback>
|
||||||
</Swipeable>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user