diff --git a/src/components/Documents/DocumentViewerModal.jsx b/src/components/Documents/DocumentViewerModal.jsx
new file mode 100644
index 00000000..c5595e84
--- /dev/null
+++ b/src/components/Documents/DocumentViewerModal.jsx
@@ -0,0 +1,27 @@
+import React, { useEffect } from "react";
+import { useDocumentVersion } from "../../hooks/useDocument";
+import { useDocumentContext } from "./Documents";
+import { error } from "pdf-lib";
+
+const DocumentViewerModal = () => {
+ const { viewDoc,setOpenDocument } = useDocumentContext();
+ const { data, isLoading, isError,error } = useDocumentVersion(viewDoc.document);
+
+ useEffect(() => {
+ if (data?.data) {
+ const fileUrl = data.data;
+ window.open(fileUrl, "_blank");
+ setOpenDocument(false)
+ }
+ }, [data]);
+
+ if (isLoading) return
Loading document...
;
+ if (isError) return ;
+
+ // Nothing to render inside modal since we redirect
+ return null;
+};
+
+export default DocumentViewerModal;
diff --git a/src/components/Documents/Documents.jsx b/src/components/Documents/Documents.jsx
index fbb89d69..85efe79c 100644
--- a/src/components/Documents/Documents.jsx
+++ b/src/components/Documents/Documents.jsx
@@ -14,6 +14,7 @@ import {
import { zodResolver } from "@hookform/resolvers/zod";
import ManageDocument from "./ManageDocument";
import ViewDocument from "./ViewDocument";
+import DocumentViewerModal from "./DocumentViewerModal";
// Context
export const DocumentContext = createContext();
@@ -50,6 +51,7 @@ const Documents = ({ Document_Entity, Entity }) => {
const [refetchFn, setRefetchFn] = useState(null);
const [DocumentEntity,setDocumentEntity] = useState(Document_Entity)
const { employeeId } = useParams();
+ const [OpenDocument,setOpenDocument] = useState(false)
const [ManageDoc, setManageDoc] = useState({
document: null,
isOpen: false,
@@ -91,7 +93,9 @@ const Documents = ({ Document_Entity, Entity }) => {
ManageDoc,
setManageDoc,
viewDoc,
- setViewDoc
+ setViewDoc,
+ setOpenDocument,
+ OpenDocument
}
useEffect(()=>{
@@ -189,6 +193,13 @@ const Documents = ({ Document_Entity, Entity }) => {
)}
+
+ {OpenDocument && (
+ setOpenDocument(false)}>
+
+
+ )}
+
diff --git a/src/components/Documents/DocumentsList.jsx b/src/components/Documents/DocumentsList.jsx
index 3fe39a49..7cc64e53 100644
--- a/src/components/Documents/DocumentsList.jsx
+++ b/src/components/Documents/DocumentsList.jsx
@@ -9,7 +9,6 @@ import { DocumentTableSkeleton } from "./DocumentSkeleton";
import { getDocuementsStatus, useDocumentContext } from "./Documents";
import Pagination from "../common/Pagination";
-
const DocumentsList = ({
Document_Entity,
Entity,
@@ -19,7 +18,7 @@ const DocumentsList = ({
setRefetchFn,
}) => {
const debouncedSearch = useDebounce(searchText, 500);
- const [currentPage,setCurrentPage] = useState(1)
+ const [currentPage, setCurrentPage] = useState(1);
const { data, isError, isLoading, error, refetch, isFetching } =
useDocumentListByEntityId(
Document_Entity,
@@ -40,19 +39,20 @@ const DocumentsList = ({
setIsRefetching(isFetching);
}, [isFetching, setIsRefetching]);
- const {setManageDoc,setViewDoc} = useDocumentContext()
+ const { setManageDoc, setViewDoc } = useDocumentContext();
- // check no data scenarios
- const noData = !isLoading && !isError && data?.data.length === 0;
- const isSearchEmpty = noData && !!debouncedSearch;
- const isFilterEmpty = noData && false;
- const isInitialEmpty = noData && !debouncedSearch;
- const paginate = (page) => {
+ const paginate = (page) => {
if (page >= 1 && page <= (data?.totalPages ?? 1)) {
setCurrentPage(page);
}
};
- if (isLoading || isFetching) return
+
+ const noData = !isLoading && !isError && data?.data.length === 0;
+ const isSearchEmpty = noData && !!debouncedSearch;
+ const isFilterEmpty = noData && !!filters && Object.keys(filters).length > 0;
+ const isInitialEmpty = noData && !debouncedSearch && !isFilterEmpty;
+
+ if (isLoading || isFetching) return ;
if (isError)
return Error: {error?.message || "Something went wrong"}
;
if (isInitialEmpty) return No documents found yet.
;
@@ -137,9 +137,19 @@ const DocumentsList = ({
))}
- setViewDoc({document:doc?.id,isOpen:true})}>
+
+ setViewDoc({ document: doc?.id, isOpen: true })
+ }
+ >
- setManageDoc({document:doc?.id,isOpen:true})}>
+
+ setManageDoc({ document: doc?.id, isOpen: true })
+ }
+ >
@@ -149,12 +159,12 @@ const DocumentsList = ({
{data?.data?.length > 0 && (
-
- )}
+
+ )}
);
};
diff --git a/src/components/Documents/ViewDocument.jsx b/src/components/Documents/ViewDocument.jsx
index f22e836e..95b673b8 100644
--- a/src/components/Documents/ViewDocument.jsx
+++ b/src/components/Documents/ViewDocument.jsx
@@ -12,7 +12,7 @@ import VersionListSkeleton from "./VersionListSkeleton";
import DocumentDetailsSkeleton from "./DocumentDetailsSkeleton ";
const ViewDocument = () => {
- const { viewDoc, setViewDoc } = useDocumentContext();
+ const { viewDoc, setViewDoc,setOpenDocument } = useDocumentContext();
const [currentPage, setCurrentPage] = useState(1);
const { data, isLoading, isError, error } = useDocumentDetails(
viewDoc?.document
@@ -39,8 +39,7 @@ const ViewDocument = () => {
Document Details
- {/* Row 1 */}
- {/* Row 1 */}
+
@@ -184,8 +183,9 @@ const ViewDocument = () => {
{getDocuementsStatus(document.isVerified)}
-
- Upload By
+
+
+ Upload By
{
document.uploadedBy?.lastName ?? ""
}`.trim() || "N/A"}
+
+ setOpenDocument(true)} >
+ view
+
-
+ {/*
{document?.updatedAt && (
Updated At : {formatUTCToLocalTime(document.updatedAt)}
)}
-
+ */}
))}
)}
diff --git a/src/hooks/useDocument.js b/src/hooks/useDocument.js
index 609955c6..f6fed0a2 100644
--- a/src/hooks/useDocument.js
+++ b/src/hooks/useDocument.js
@@ -91,6 +91,14 @@ export const useDocumentVersionList = (parentAttachmentId,pageSize,pageNumber) =
});
};
+
+export const useDocumentVersion = (id)=>{
+ return useQuery({
+ queryKey:["DocumentVersion",id],
+ queryFn:async()=> await DocumentRepository.getDocumentVersion(id),
+ enabled:!!id
+ })
+}
//----------------------- MUTATION -------------------------
export const useUploadDocument = (onSuccessCallBack) => {
diff --git a/src/pages/authentication/LoginPage.jsx b/src/pages/authentication/LoginPage.jsx
index f8f48c84..6b97ffce 100644
--- a/src/pages/authentication/LoginPage.jsx
+++ b/src/pages/authentication/LoginPage.jsx
@@ -86,12 +86,12 @@ const LoginPage = () => {
}
}, [IsLoginWithOTP]);
- useEffect(() => {
- const token = localStorage.getItem("jwtToken");
- if (token) {
- navigate("/dashboard");
- }
-}, [navigate]);
+// useEffect(() => {
+// const token = localStorage.getItem("jwtToken");
+// if (token) {
+// navigate("/dashboard");
+// }
+// }, [navigate]);
return (
|