diff --git a/app/routes/events-team_.report.tsx b/app/routes/events-team_.report.tsx index 10e1cea..2af68b2 100644 --- a/app/routes/events-team_.report.tsx +++ b/app/routes/events-team_.report.tsx @@ -1,4 +1,5 @@ import { + Button, Container, Heading, Table, @@ -11,6 +12,7 @@ import { Tr, } from "@chakra-ui/react"; import { useLoaderData } from "@remix-run/react"; +import { useState } from "react"; export async function loader({ context }: { context: RequestContext }) { const { current_user: user } = context.data; @@ -82,13 +84,27 @@ export async function loader({ context }: { context: RequestContext }) { ) memberMap[member].points -= 30; - return memberMap; + const date = new Date(); + const reportFinalizationKey = await context.env.DATA.get( + `reportfinalized_${date.getUTCFullYear()}-${date.getUTCMonth() + 1}`, + ); + + return { + can_finalize: typeof reportFinalizationKey !== "undefined", + members: memberMap, + }; } export default function () { const data = useLoaderData() as { - [k: string]: { name: string; points: number; roblox_id?: number }; + can_finalize: boolean; + members: { + [k: string]: { name: string; points: number; roblox_id?: number }; + }; }; + const [showFinalizeButton, setShowFinalizeButton] = useState( + data.can_finalize, + ); const now = new Date(); let month = now.getUTCMonth(); let year = now.getUTCFullYear(); @@ -117,7 +133,7 @@ export default function () { - {Object.entries(data).map(([key, value]) => ( + {Object.entries(data.members).map(([key, value]) => ( {key} {value.name} @@ -128,6 +144,7 @@ export default function () { + ); }