import { redirect } from "next/navigation"; import { Separator } from "@/components/ui/separator"; import { getServerAuthSession } from "@/server/auth"; import { ZDay } from "@lifetracker/shared/types/days"; import EditableDayComment from "./EditableDayComment"; import { MoodStars } from "./MoodStars"; import Link from "next/link"; import { cn } from "@/lib/utils"; import { ArrowLeftSquare, ArrowRightSquare } from "lucide-react"; import spacetime from "spacetime"; import EditableHour from "@/components/dashboard/hours/EditableHour"; import { DayMetrics } from "./DayMetrics"; import { api } from "@/server/api/client"; export default async function DayView({ day, }: { day: ZDay; }) { const session = await getServerAuthSession(); if (!session) { redirect("/"); } const prevDay = spacetime(day.date).subtract(1, "day").format("iso-short"); const nextDay = spacetime(day.date).add(1, "day").format("iso-short"); const userMetrics = await api.metrics.list(); const groupConsecutiveHours = (day: ZDay) => { const result = []; let currentGroup = []; for (const hour of day.hours) { if (hour.categoryCode === null) { if (currentGroup.length > 0) { result.push(currentGroup); currentGroup = []; } result.push([hour]); continue; } if (currentGroup.length === 0 || hour.categoryCode === currentGroup[currentGroup.length - 1].categoryCode) { currentGroup.push(hour); } else { result.push(currentGroup); currentGroup = [hour]; } } if (currentGroup.length > 0) { result.push(currentGroup); } return result; }; const consecutiveHours = groupConsecutiveHours(day); return (
{spacetime(day.date).format("{day}, {month} {date}, {year}")} {spacetime(day.date).format("{day-short}, {month-short} {date}, {year}")}
    {/* {consecutiveHours.map((group, i) => ( group.map((hour, j) => ( j == 0 ? (
  • ) : ( "" ) )) ))} */} { day.hours.map((hour, i) => (
  • ) ) }
); }