diff --git a/src/app/hack/[slug]/page.tsx b/src/app/hack/[slug]/page.tsx
index 8464b58..d2d477a 100644
--- a/src/app/hack/[slug]/page.tsx
+++ b/src/app/hack/[slug]/page.tsx
@@ -20,7 +20,7 @@ import { MenuItem } from "@headlessui/react";
import { FaCircleCheck } from "react-icons/fa6";
import { RiArchiveStackFill } from "react-icons/ri";
import { TbProgressCheck } from "react-icons/tb";
-import { isInformationalArchiveHack, isDownloadableArchiveHack, isArchiveHack, checkEditPermission } from "@/utils/hack";
+import { isArchiveHack, checkEditPermission, checkPatchEditPermission } from "@/utils/hack";
import Avatar from "@/components/Account/Avatar";
import CollapsibleCard from "@/components/Primitives/CollapsibleCard";
import CollapsibleTags from "@/components/Hack/CollapsibleTags";
@@ -130,10 +130,12 @@ export default async function HackDetail({ params }: HackDetailProps) {
isDownloadableArchive,
isArchive,
} = await checkEditPermission(hack, user?.id as string, supabase);
- const canUploadPatch = canEdit && !isInformationalArchive;
+ const {
+ canEdit: canUploadPatch,
+ } = await checkPatchEditPermission(hack, user?.id as string, supabase);
let isAdmin = false;
- if ((!hack.approved && !canEdit) || isArchive) {
+ if (!hack.approved || isArchive) {
const { data: admin } = await supabase.rpc("is_admin");
if (admin) {
isAdmin = true;
@@ -421,7 +423,7 @@ export default async function HackDetail({ params }: HackDetailProps) {
)}
-
+
{isAdmin && !hack.approved && (