段階調整

This commit is contained in:
harukin-expo-dev-env 2025-08-12 18:27:06 +00:00
parent 6518b53de9
commit 8102680ba7
2 changed files with 45 additions and 33 deletions

View File

@ -1,6 +1,6 @@
import { trainPosition } from "@/lib/trainPositionTextArray";
import React, { CSSProperties, FC } from "react";
import { View, Text, StyleProp, TextStyle, ViewStyle } from "react-native";
import React, { FC } from "react";
import { View, Text, TextStyle, ViewStyle } from "react-native";
type stateBox = {
currentTrainData: any;
@ -8,7 +8,7 @@ type stateBox = {
title: string;
style?: ViewStyle;
mode?: number;
endText?: string;
platformDescription: string;
lineNumber: string;
};
export const PositionBox: FC<stateBox> = (props) => {
@ -18,44 +18,55 @@ export const PositionBox: FC<stateBox> = (props) => {
title,
style,
mode,
endText,
platformDescription,
lineNumber,
} = props;
const trainPositionText = (trainData) => {
const { isBetween, Pos: PosData } = trainPosition(trainData);
if (isBetween === true) {
const { from, to } = PosData;
return `${from}${to}`;
} else {
const { Pos } = PosData;
if (Pos == "") return "";
if (platformNumber) return `${Pos} ${platformNumber}番乗り場`;
if (lineNumber) return `${Pos} ${lineNumber}番線`;
let firstText = "";
let secondText = "";
let marginText = "";
let externalText = "";
const { isBetween, Pos: PosData } = trainPosition(currentTrainData);
if (isBetween === true) {
const { from, to } = PosData;
firstText = from;
secondText = to;
marginText = mode == 2 ? "→" : "↓";
} else {
const { Pos } = PosData;
if (Pos !== "") {
firstText = Pos;
if (platformNumber) {
secondText = `${platformNumber}番乗り場`;
if (lineNumber) {
externalText = `${lineNumber}番線`;
}
} else if (lineNumber) {
secondText = `${lineNumber}番線`;
}
}
};
const text = trainPositionText(currentTrainData);
}
return (
<View style={{ ...(mode == 2 ? boxStyle2 : boxStyle), ...style }}>
<Text style={{ fontSize: 12, color: "#0099CC" }}>{title}</Text>
<View style={{ flex: 1 }} />
<View style={{ flexDirection: mode == 2 ? "row" : "column" }}>
{text?.match("") ? (
<>
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{text.split("")[0]}
</Text>
<Text style={{ color: "#0099CC", textAlign: "right" }}>
{mode == 2 ? "→" : "↓"}
</Text>
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{text.split("")[1]}
</Text>
</>
) : (
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>{text}</Text>
{firstText && (
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{firstText}
</Text>
)}
{marginText && (
<Text style={{ color: "#0099CC", textAlign: "right" }}>
{marginText}
</Text>
)}
{secondText && (
<Text style={mode == 2 ? boxTextStyle2 : boxTextStyle}>
{secondText}
</Text>
)}
</View>
{endText && (
{(platformDescription || externalText) && (
<View style={{ flexDirection: mode == 2 ? "row" : "column" }}>
<Text
style={{
@ -63,7 +74,8 @@ export const PositionBox: FC<stateBox> = (props) => {
fontSize: 10,
}}
>
{endText}
{" " + externalText}
{" " + platformDescription}
</Text>
</View>
)}

View File

@ -147,7 +147,7 @@ export const TrainDataView = ({
currentTrainData={currentTrainData}
platformNumber={platformNumber}
lineNumber={lineNumber}
endText={platformDescription ? `${platformDescription}` : ""}
platformDescription={platformDescription ? `${platformDescription}` : ""}
style={
onLine
? { borderWidth: 1, borderColor: "red", borderStyle: "solid" }