駅名カラー設定

This commit is contained in:
harukin-expo-dev-env
2025-08-27 00:19:39 +00:00
parent 7edfa62673
commit 9410925f70
2 changed files with 47 additions and 11 deletions

View File

@@ -182,12 +182,13 @@ export const ExGridView: FC<{
</Animated.Text>
</View>,
<View style={{ flexDirection: "row", position: "relative" }}>
{groupedData[hour].map((d, i) => (
{groupedData[hour].map((d, i,array) => (
<ExGridViewItem
key={d.trainNumber + i}
d={d}
index={i}
width={widthX}
array={array}
/>
))}
</View>,

View File

@@ -17,6 +17,7 @@ import { lineList } from "@/lib/getStationList";
import { useStationList } from "@/stateBox/useStationList";
import { SharedValue, useAnimatedStyle } from "react-native-reanimated";
import Animated from "react-native-reanimated";
import lineColorList from "@/assets/originData/lineColorList";
export const ExGridViewItem: FC<{
d: {
@@ -28,8 +29,15 @@ export const ExGridViewItem: FC<{
};
index: number;
width: SharedValue<number>;
}> = ({ d, index, width }) => {
array: {
train: string;
lastStation: string;
time: string;
isThrough?: boolean;
}[];
}> = ({ d, index, width, array }) => {
const { allCustomTrainData } = useAllTrainDiagram();
const { originalStationList, stationList } = useStationList();
const { navigate, goBack } = useNavigation();
const [trainData, setTrainData] = useState<{
ToData: string;
@@ -57,7 +65,6 @@ export const ExGridViewItem: FC<{
}
}, []);
const { color, name, data } = getTrainType(trainData?.type, true);
const { originalStationList } = useStationList();
// 列車名、種別、フォントの取得
const [
typeString,
@@ -100,11 +107,10 @@ export const ExGridViewItem: FC<{
];
default:
// 行先がある場合は、行先を取得
const trainName = (d.type == "着" || d.type == "着編") ? trainData[0].split(",")[0] : trainData[trainData.length - 1].split(",")[0]
return [
typeString,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行"
),
migrateTrainName(trainName),
fontAvailable,
isOneMan,
infogram,
@@ -120,6 +126,16 @@ export const ExGridViewItem: FC<{
.set("hour", timeArray[0])
.set("minute", timeArray[1])
.format("m");
let isSameTimeBefore = false;
if (index > 0) {
const beforeItem = array[index - 1];
const beforeTimeArray = beforeItem.time.split(":").map((s) => parseInt(s));
const beforeFormattedTime = dayjs()
.set("hour", beforeTimeArray[0])
.set("minute", beforeTimeArray[1])
.format("m");
isSameTimeBefore = beforeFormattedTime === formattedTime;
}
const openStationACFromEachTrainInfo = async (stationName) => {
await SheetManager.hide("EachTrainInfo");
@@ -172,6 +188,22 @@ export const ExGridViewItem: FC<{
},
});
};
const [stationColor, setStationColor] = useState(["gray"]);
useEffect(() => {
const Stations = stationList
.map((a) => a.filter((d) => d.StationName == trainName))
.reduce((newArray, e) => newArray.concat(e), []);
const StationNumbers =
Stations &&
Stations.filter((d) => d.StationNumber).map((d) => d.StationNumber);
if (StationNumbers) {
const stationLineColor = StationNumbers.map(
(d) => lineColorList[d.charAt(0)]
);
setStationColor(stationLineColor || ["gray"]);
}
}, [stationList]);
// if(typeString == "回送"){
// return<></>;
// }
@@ -188,25 +220,27 @@ export const ExGridViewItem: FC<{
style={[
{
flexDirection: "column",
borderTopWidth: 1,
borderBottomWidth: 0.5,
//borderTopWidth: 1,
//borderBottomWidth: 0.5,
borderStyle: "solid",
borderColor: "darkgray",
opacity: d.type.includes("通") ? 0.5 : 1,
position: "absolute",
height: "100%",
width: 28,
top: isSameTimeBefore ? 10 : 0,
},
animatedStyle,
]}
>
<TouchableOpacity style={{ flex: 1 }} onPress={() => openTrainInfo()}>
<View style={{ position: "relative" }}>
<Text style={{ fontSize: 20, color: color }}>{formattedTime}</Text>
<Text style={{ fontSize: 20, color: color, opacity: isSameTimeBefore ? 0 : 1 }}>{formattedTime}</Text>
<Text
style={{
fontSize: 10,
position: "absolute",
bottom: -3,
bottom: 0,
right: 0,
fontWeight: "bold",
}}
@@ -217,9 +251,10 @@ export const ExGridViewItem: FC<{
<View style={{ flex: 1, flexDirection: "column" }}>
<Text
style={{
fontSize: 10,
fontSize: 8,
flex: 1,
fontWeight: "bold",
color: stationColor[0],
}}
>
{trainName}