全時間帯表示、種別フィルタリング機能を追加

This commit is contained in:
harukin-expo-dev-env
2025-08-28 03:56:53 +00:00
parent 92d37b7277
commit b38d8fe39d
3 changed files with 57 additions and 12 deletions

View File

@@ -43,14 +43,42 @@ export const ExGridView: FC<{
time: string;
isOperating: boolean;
}[];
} = {};
const groupKeys: string[] = [];
} = {"4":[],
"5":[],
"6":[],
"7":[],
"8":[],
"9":[],
"10":[],
"11":[],
"12":[],
"13":[],
"14":[],
"15":[],
"16":[],
"17":[],
"18":[],
"19":[],
"20":[],
"21":[],
"22":[],
"23":[],
"0":[],
"1":[],
"2":[],
"3":[]
};
const groupKeys: string[] = ["4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","0","1","2","3"];
const { width } = useWindowDimensions();
const { currentTrain } = useCurrentTrain();
data.forEach((item) => {
let isOperating = false;
let [hour, minute] = item.time.split(":");
let [hour, minute] = dayjs()
.hour(parseInt(item.time.split(":")[0]))
.minute(parseInt(item.time.split(":")[1]))
.format("H:m")
.split(":");
if (currentTrain.findIndex((x) => x.num == item.trainNumber) != -1) {
const currentTrainTime = currentTrain.find(
(x) => x.num == item.trainNumber
@@ -65,10 +93,10 @@ export const ExGridView: FC<{
}
isOperating = true;
}
if (!groupedData[hour]) {
groupedData[hour] = [];
groupKeys.push(hour);
}
// if (!groupedData[hour]) {
// groupedData[hour] = [];
// groupKeys.push(hour);
// }
groupedData[hour].push({ ...item, time: `${hour}:${minute}`, isOperating });
});
// ドラッグ位置を保持する共有値
@@ -265,7 +293,7 @@ export const ExGridView: FC<{
{hour}
</Animated.Text>
</View>,
<View style={{ flexDirection: "row", position: "relative" }}>
<View style={{ flexDirection: "row", position: "relative", height: 50 }}>
{groupedData[hour].map((d, i, array) => (
<ExGridViewItem
key={d.trainNumber + i}