From 1c1b5c71afd69c14499069984a1f6feb125ffcee Mon Sep 17 00:00:00 2001
From: Regalijan <r@regalijan.com>
Date: Sun, 12 May 2024 02:02:41 -0400
Subject: [PATCH] Fix various components

---
 components/AppealCard.tsx           |  4 +++-
 components/InactivityNoticeCard.tsx | 20 +++++++++++++++++---
 index.d.ts                          |  1 +
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/components/AppealCard.tsx b/components/AppealCard.tsx
index 4bf3757..28878b0 100644
--- a/components/AppealCard.tsx
+++ b/components/AppealCard.tsx
@@ -127,7 +127,9 @@ export default function (props: AppealCardProps & { port?: MessagePort }) {
         </Stack>
       </CardBody>
       <CardFooter pb="4px">
-        <Box display={props.open ? undefined : "none"}>
+        <Box
+          display={typeof props.approved === "number" ? "none" : "undefined"}
+        >
           <Button colorScheme="red" onClick={() => showModal("Deny")}>
             Deny
           </Button>
diff --git a/components/InactivityNoticeCard.tsx b/components/InactivityNoticeCard.tsx
index 5eb37a4..5d2c04b 100644
--- a/components/InactivityNoticeCard.tsx
+++ b/components/InactivityNoticeCard.tsx
@@ -94,11 +94,13 @@ export default function (
               </Text>
             </Box>
           ) : null}
-          {props.decisions ? (
+          {Object.keys(props.decisions as { [k: string]: boolean }).length ? (
             <Box>
               <Heading size="xs">Decisions</Heading>
               <UnorderedList>
-                {Object.entries(props.decisions).map(([dept, accepted]) => (
+                {Object.entries(
+                  props.decisions as { [k: string]: boolean },
+                ).map(([dept, accepted]) => (
                   <ListItem>
                     <Stack alignItems="center" direction="row">
                       <Text>{dept}:&nbsp;</Text>
@@ -111,7 +113,19 @@ export default function (
           ) : null}
         </Stack>
       </CardBody>
-      <CardFooter display={props.open ? undefined : "none"} pb="4px">
+      <CardFooter
+        display={
+          props.departments.length !==
+          Object.values(
+            props.decisions as {
+              [k: string]: boolean;
+            },
+          ).length
+            ? undefined
+            : "none"
+        }
+        pb="4px"
+      >
         <Box>
           <Button
             colorScheme="red"
diff --git a/index.d.ts b/index.d.ts
index 51b0803..dd98716 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -20,6 +20,7 @@ declare global {
   type RequestContext = EventContext<Env, string, { [k: string]: any }>;
 
   interface AppealCardProps {
+    approved: number | null;
     ban_reason: string;
     created_at: number;
     id: string;