Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add events member data to me page
  • Loading branch information
regalijan committed Mar 10, 2024
1 parent b070373 commit 8df681e
Showing 1 changed file with 67 additions and 4 deletions.
71 changes: 67 additions & 4 deletions app/routes/me.tsx
Expand Up @@ -11,6 +11,7 @@ import {
ModalHeader,
ModalOverlay,
Table,
TableCaption,
TableContainer,
Tbody,
Td,
Expand Down Expand Up @@ -44,8 +45,39 @@ export async function loader({ context }: { context: RequestContext }) {
);

const settledPromises = await Promise.allSettled(d1Promises);
let etData: { [k: string]: any } | null = null;

if (currentUser.permissions & (1 << 3)) {
etData = await context.env.D1.prepare(
"SELECT name, points, roblox_id FROM et_members WHERE id = ?;",
)
.bind(currentUser.id)
.first();

if (etData) {
const now = new Date();
const pointsData = await context.env.D1.prepare(
"SELECT answered_at, approved, day, month, performed_at, reached_minimum_player_count, type, year FROM events WHERE created_by = ? AND month = ? AND year = ?;",
)
.bind(currentUser.id, now.getUTCMonth(), now.getUTCFullYear())
.all();

for (const row of pointsData.results as Record<string, any>[]) {
if (row.performed_at) etData.points += 10;
if (row.type === "gamenight" && row.reached_minimum_player_count)
etData.points += 10;
if (
row.type === "rotw" &&
row.answered_at - row.performed_at >= 86400000
)
etData.points += 10;
if (!row.performed_at && row.day < now.getUTCDate()) etData.points -= 5;
}
}
}

return {
etData,
items: settledPromises.map((p) => {
if (p.status === "fulfilled") return p.value.results;

Expand All @@ -57,6 +89,7 @@ export async function loader({ context }: { context: RequestContext }) {

export default function () {
const data: {
etData: { [k: string]: any } | null;
items: ({ [k: string]: any }[] | null)[];
permissions: number;
} = useLoaderData<typeof loader>();
Expand Down Expand Up @@ -237,6 +270,36 @@ export default function () {
<Heading mb={8}>My Data</Heading>
<br />
<br />
{data.permissions & (1 << 3) ? (
<>
<Heading size="lg">Events Team Info</Heading>
<TableContainer mb="16px">
<Table variant="simple">
<TableCaption>
Reach out to ETM if this info is incorrect
</TableCaption>
<Thead>
<Tr>
<Th>Name</Th>
<Th>Points</Th>
<Th>Roblox ID</Th>
</Tr>
</Thead>
<Tbody>
<Tr>{data.etData?.name}</Tr>
<Tr>{data.etData?.points}</Tr>
<Tr>
<Link
href={`https://www.roblox.com/users/${data.etData?.roblox_id}/profile`}
>
{data.etData?.roblox_id}
</Link>
</Tr>
</Tbody>
</Table>
</TableContainer>
</>
) : null}
<Heading size="lg">Discord Appeals</Heading>
<TableContainer mb="16px">
<Table variant="simple">
Expand All @@ -258,8 +321,8 @@ export default function () {
{result.open
? "Pending"
: typeof result.approved === "number"
? `${result.approved ? "Accepted" : "Denied"}`
: "Unknown"}
? `${result.approved ? "Accepted" : "Denied"}`
: "Unknown"}
</Td>
<Td>
<Button
Expand Down Expand Up @@ -298,8 +361,8 @@ export default function () {
{result.open
? "Pending"
: result.approved
? "Approved"
: "Denied"}
? "Approved"
: "Denied"}
</Td>
<Td>
<Button
Expand Down

0 comments on commit 8df681e

Please sign in to comment.