diff --git a/components/StationDiagram/ExGridView.tsx b/components/StationDiagram/ExGridView.tsx index 7c87e5e..2d1e573 100644 --- a/components/StationDiagram/ExGridView.tsx +++ b/components/StationDiagram/ExGridView.tsx @@ -182,12 +182,13 @@ export const ExGridView: FC<{ , - {groupedData[hour].map((d, i) => ( + {groupedData[hour].map((d, i,array) => ( ))} , diff --git a/components/StationDiagram/ExGridViewItem.tsx b/components/StationDiagram/ExGridViewItem.tsx index 35bb775..59a5065 100644 --- a/components/StationDiagram/ExGridViewItem.tsx +++ b/components/StationDiagram/ExGridViewItem.tsx @@ -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; -}> = ({ 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, ]} > openTrainInfo()}> - {formattedTime} + {formattedTime} {trainName}