getDataOfDatesTimes = (data) => {
const dataWithDayTime = data.map((d) => ({
...d,
dateOnly: new Date(
Date.UTC(
d.date.getUTCFullYear(),
d.date.getUTCMonth(),
d.date.getUTCDate()
)
),
time: Math.floor(
((d.date.getUTCHours() * 60 + d.date.getUTCMinutes()) * 60 * 1000) /
(12 * 60 * 60 * 1000)
)
}));
const groupedData = d3.group(
dataWithDayTime,
(d) => d.dateOnly,
(d) => d.time
);
groupedData.forEach((value) => {
if (value instanceof Map) {
const timeGroups = Array.from(value.values());
if (timeGroups.length > 0 && Array.isArray(timeGroups[0])) {
timeGroups[0].reverse();
}
}
});
return groupedData;
}