diff --git a/apps/web/src/app/[locale]/(admin)/dashboard.tsx b/apps/web/src/app/[locale]/(admin)/dashboard.tsx index 0c077b84d..aa18455df 100644 --- a/apps/web/src/app/[locale]/(admin)/dashboard.tsx +++ b/apps/web/src/app/[locale]/(admin)/dashboard.tsx @@ -1,14 +1,21 @@ "use client"; import { Button } from "@rallly/ui/button"; +import { CalendarIcon } from "lucide-react"; import Link from "next/link"; +import { GridCard, GridCardHeader } from "@/components/grid-card"; import { GroupPollCard } from "@/components/group-poll-card"; import { Subheading } from "@/components/heading"; import { Spinner } from "@/components/spinner"; import { Trans } from "@/components/trans"; +import { useLocalizeTime } from "@/utils/dayjs"; import { trpc } from "@/utils/trpc/client"; +const SectionHeading = ({ children }: React.PropsWithChildren) => { + return
{children}
; +}; + export default function Dashboard() { return (
@@ -18,7 +25,7 @@ export default function Dashboard() {
-
+ @@ -27,9 +34,22 @@ export default function Dashboard() { -
+
+
+ + + + + + + +
); } @@ -44,7 +64,7 @@ function PendingPolls() { } return ( -
+
{data.map((poll) => { return ( ); })}
); } + +function UpcomingEvents() { + const { data } = trpc.dashboard.getUpcoming.useQuery(undefined, { + suspense: true, + }); + + const localizeTime = useLocalizeTime(); + + if (!data) { + return ; + } + + return ( +
+ {data.map((event) => { + return ( + + +
+
+ +
+
+
+

{event.title}

+ +
+
+
+ ); + })} +
+ ); +} diff --git a/apps/web/src/app/[locale]/(admin)/layout.tsx b/apps/web/src/app/[locale]/(admin)/layout.tsx index 1961fadb6..2f029d90e 100644 --- a/apps/web/src/app/[locale]/(admin)/layout.tsx +++ b/apps/web/src/app/[locale]/(admin)/layout.tsx @@ -17,10 +17,10 @@ export default async function Layout({ children: React.ReactNode; }) { return ( -
+