diff --git a/apps/web/app/dashboard/day/[dateQuery]/page.tsx b/apps/web/app/dashboard/day/[dateQuery]/page.tsx
index 75edc0d..dab9ace 100644
--- a/apps/web/app/dashboard/day/[dateQuery]/page.tsx
+++ b/apps/web/app/dashboard/day/[dateQuery]/page.tsx
@@ -1,10 +1,17 @@
-import { notFound } from "next/navigation";
+import { notFound, redirect } from "next/navigation";
import { api } from "@/server/api/client";
import { TRPCError } from "@trpc/server";
import DayView from "@/components/dashboard/days/DayView";
+import { getServerAuthSession } from "@/server/auth";
import LoadingSpinner from "@/components/ui/spinner";
export default async function DayPage({ params }: { params: { dateQuery: string }; }) {
+ const session = await getServerAuthSession();
+ if (!session) {
+ redirect("/");
+ }
+
+
let day;
const { dateQuery } = await params;
const timezone = await api.users.getTimezone();
diff --git a/apps/web/components/dashboard/days/DayView.tsx b/apps/web/components/dashboard/days/DayView.tsx
index 6e07fdc..bc9e2cc 100644
--- a/apps/web/components/dashboard/days/DayView.tsx
+++ b/apps/web/components/dashboard/days/DayView.tsx
@@ -1,7 +1,7 @@
+"use client";
import { redirect } from "next/navigation";
import { Separator } from "@/components/ui/separator";
-import { getServerAuthSession } from "@/server/auth";
-import { ZDay } from "@lifetracker/shared/types/days";
+import { ZDay, ZHour } from "@lifetracker/shared/types/days";
import EditableDayComment from "./EditableDayComment";
import { MoodStars } from "./MoodStars";
import Link from "next/link";
@@ -10,26 +10,21 @@ 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({
+import { api } from "@/lib/trpc";
+export default 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 { data: userMetrics } = api.metrics.list.useQuery();
const groupConsecutiveHours = (day: ZDay) => {
const result = [];
- let currentGroup = [];
+ let currentGroup: ZHour[] = [];
for (const hour of day.hours) {
if (hour.categoryCode === null) {
@@ -113,8 +108,9 @@ export default async function DayView({