import React, { useState } from "react"; import { useDocumentDetails, useDocumentVersionList, useVerifyDocument, } from "../../hooks/useDocument"; import { getDocuementsStatus, useDocumentContext } from "./Documents"; import { formatUTCToLocalTime } from "../../utils/dateUtils"; import Avatar from "../common/Avatar"; import { ITEMS_PER_PAGE } from "../../utils/constants"; import Pagination from "../common/Pagination"; import VersionListSkeleton from "./VersionListSkeleton"; import DocumentDetailsSkeleton from "./DocumentDetailsSkeleton "; const ViewDocument = () => { const { viewDoc, setViewDoc, setOpenDocument } = useDocumentContext(); const [currentPage, setCurrentPage] = useState(1); const { data, isLoading, isError, error } = useDocumentDetails( viewDoc?.document ); const { data: versionList, isError: isVersionError, isLoading: versionLoding, error: versionError, } = useDocumentVersionList( data?.parentAttachmentId, ITEMS_PER_PAGE, currentPage ); const paginate = (page) => { if (page >= 1 && page <= (versionList?.totalPages ?? 1)) { setCurrentPage(page); } }; const { mutate: VerifyDoc, isPending } = useVerifyDocument(); const VerifyDocument = () => { VerifyDoc({ documentId: viewDoc?.document, isVerify: true }); }; if (isLoading) return ; if (isError) return

{error?.response?.data?.message || error?.message}

{error?.response?.status}

; return (

Document Details

Document Name: {data.name || "-"}
Document ID: {data.documentId || "-"}
{/* Row 2 */}
Version: {data.version || "-"}
Uploaded At: {formatUTCToLocalTime(data.uploadedAt)}
{/* Row 3 */}
Uploaded By: {data.uploadedBy?.firstName || "-"}
Updated At: {formatUTCToLocalTime(data.updatedAt) || "-"}
{/* Row 4 */}
Category: {data.documentType?.documentCategory?.name || "-"}
Type: {data.documentType?.name || "-"}
{/* Row 5 - Tags full width */}
Tags:
{data.tags?.length > 0 ? ( data.tags.map((t, i) => ( {t.name} )) ) : ( - )}
{/* Row 6 - Description full width */}
Description: {data.description || "-"}

Documents

{versionLoding && } {!versionLoding && (
{versionList?.data.map((document) => (

{document.name}{" "} {formatUTCToLocalTime(document?.uploadedAt)}

Version {document.version} {getDocuementsStatus(document.isVerified)}
Upload By {`${document.uploadedBy?.firstName ?? ""} ${ document.uploadedBy?.lastName ?? "" }`.trim() || "N/A"}
{document.isVerified == null && (isPending ? (
Loading...
) : ( verify ))} setOpenDocument(true)} > view{" "}
{/*
{document?.updatedAt && ( Updated At : {formatUTCToLocalTime(document.updatedAt)} )}
*/}
))}
)} {!versionLoding && versionList?.data?.length > 0 && ( )}
); }; export default ViewDocument;