From 446c19fe85dc5e42351464c6cf37a27a016cc6ff Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 13 Sep 2024 15:28:41 -0500 Subject: [PATCH] hot fix for opening docs --- shpe-app-web/app/components/MemberCard.tsx | 88 ++++++++++++++++------ shpe-app-web/cors.json | 9 +++ 2 files changed, 74 insertions(+), 23 deletions(-) create mode 100644 shpe-app-web/cors.json diff --git a/shpe-app-web/app/components/MemberCard.tsx b/shpe-app-web/app/components/MemberCard.tsx index 19532ae7..05053f65 100644 --- a/shpe-app-web/app/components/MemberCard.tsx +++ b/shpe-app-web/app/components/MemberCard.tsx @@ -1,28 +1,70 @@ -'use client' -import { useState } from "react"; +import { getStorage, ref, getMetadata, getBlob } from "firebase/storage"; +import { saveAs } from "file-saver"; import { RequestWithDoc } from "@/types/membership"; +const storage = getStorage(); -interface MemberCardProps{ - request: RequestWithDoc, - onApprove: (member: RequestWithDoc) => void, - onDeny: (member: RequestWithDoc) => void, -} +const fetchAndFixFile = async (url: string) => { + try { + const fileRef = ref(storage, url); + + const metadata = await getMetadata(fileRef); + + if (metadata.contentType === "image/png" || metadata.contentType === "image/jpeg") { + window.open(url, "_blank"); + return; + } + + let extension = ""; + switch (metadata.contentType) { + case "application/pdf": + extension = ".pdf"; + break; + case "image/heic": + extension = ".heic"; + break; + default: + extension = ""; + } + + const blob = await getBlob(fileRef); -const MemberCard : React.FC = ({request, onApprove, onDeny}) => { - - - return( - // flex text-gray-400 justify-evenly text-2xl - - {request.name} - Chapter - National - - - - ) - //} - + const filename = `verification${extension}`; + + saveAs(blob, filename); + } catch (error) { + console.error("Error fetching or fixing the file:", error); + } +}; + +interface MemberCardProps { + request: RequestWithDoc; + onApprove: (member: RequestWithDoc) => void; + onDeny: (member: RequestWithDoc) => void; } -export default MemberCard; \ No newline at end of file + +const MemberCard: React.FC = ({ request, onApprove, onDeny }) => { + return ( + + {request.name} + + + + + + + + + + + + + + ); +}; + +export default MemberCard; diff --git a/shpe-app-web/cors.json b/shpe-app-web/cors.json new file mode 100644 index 00000000..df1b8d62 --- /dev/null +++ b/shpe-app-web/cors.json @@ -0,0 +1,9 @@ +[ + { + "origin": ["http://localhost:3000", "https://tamu-shpe-admin-web.vercel.app"], + "method": ["GET"], + "maxAgeSeconds": 3600, + "responseHeader": ["Content-Type"] + } + ] + \ No newline at end of file