lifetracker/apps/web/app/dashboard/day/[dateQuery]/page.tsx

38 lines
972 B
TypeScript

import { notFound } from "next/navigation";
import { api } from "@/server/api/client";
import { TRPCError } from "@trpc/server";
import DayView from "@/components/dashboard/days/DayView";
import spacetime from "spacetime";
import { useTimezone } from "@lifetracker/shared-react/hooks/timezones";
export default async function DayPage({
params,
}: {
params: { dateQuery: string };
}) {
let day;
const tzName = await api.users.getTimezone();
console.log(`Displaying ${spacetime.now(tzName).format()} in ${tzName}.`);
try {
day = await api.days.get({
dateQuery: spacetime(params.dateQuery, tzName).format(),
timezone: tzName,
});
} catch (e) {
if (e instanceof TRPCError) {
if (e.code == "NOT_FOUND") {
notFound();
}
}
throw e;
}
return (
<>
<DayView
day={day}
/>
</>
);
}