From 89c6f9c7fc7302844efe22782a24d47e662dffe5 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Mon, 28 Jul 2025 12:51:09 +0530 Subject: [PATCH] added pDf view --- src/components/Expenses/ViewExpense.jsx | 87 +++++++++++++------------ src/pages/Expense/ExpensePage.jsx | 8 ++- 2 files changed, 51 insertions(+), 44 deletions(-) diff --git a/src/components/Expenses/ViewExpense.jsx b/src/components/Expenses/ViewExpense.jsx index a9f7ae0f..0c36f2c1 100644 --- a/src/components/Expenses/ViewExpense.jsx +++ b/src/components/Expenses/ViewExpense.jsx @@ -163,12 +163,27 @@ const ViewExpense = ({ ExpenseId }) => {
{data?.description}
-
- - {data?.documents && - data?.documents?.map((doc) => ( +
+ + + {data?.documents?.map((doc) => { + const getIconByType = (type) => { + if (!type) return "bx bx-file"; + + if (type.includes("pdf")) return "bxs-file-pdf"; + if (type.includes("word")) return "bxs-file-doc"; + if (type.includes("excel") || type.includes("spreadsheet")) + return "bxs-file-xls"; + if (type.includes("image")) return "bxs-file-image"; + if (type.includes("zip") || type.includes("rar")) + return "bxs-file-archive"; + + return "bx bx-file"; + }; + + const isImage = doc.contentType?.includes("image"); + + return (
{
{ + if (isImage) { + setDocumentView({ + IsOpen: true, + Image: doc.preSignedUrl, + }); + } + }} > - {doc.contentType === "application/pdf" ? ( -
- -
- ) : ( - <> - {!imageLoaded[doc.id] && ( -
- Loading... -
- )} - {doc.fileName} handleImageLoad(doc.id)} - onClick={() => - setDocumentView({ - IsOpen: true, - Image: doc.preSignedUrl, - }) - } - /> - - )} +
{doc.fileName}
- +
- ))} + ); + })}

diff --git a/src/pages/Expense/ExpensePage.jsx b/src/pages/Expense/ExpensePage.jsx index 3b29f74f..3ae2ce11 100644 --- a/src/pages/Expense/ExpensePage.jsx +++ b/src/pages/Expense/ExpensePage.jsx @@ -92,7 +92,13 @@ const SelectDropdown = ({ }; export const ExpenseContext = createContext(); -export const useExpenseContext = () => useContext(ExpenseContext); +export const useExpenseContext = () => { + const context = useContext(ExpenseContext); + if (!context) { + throw new Error("useExpenseContext must be used within an ExpenseProvider"); + } + return context; +} const ExpensePage = () => { const [isOpen, setIsOpen] = useState(false);