駅名カラー設定
This commit is contained in:
@@ -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>,
|
||||
|
@@ -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}
|
||||
|
Reference in New Issue
Block a user