From 8d44606b0bf09089209fe368e66203f266f1172f Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Tue, 9 Sep 2025 12:38:11 +0530 Subject: [PATCH 01/10] Changes In Popup of Document. --- .../Documents/DocumentVersionList.jsx | 354 ++++++++++++------ src/components/Documents/ViewDocument.jsx | 71 ++-- 2 files changed, 270 insertions(+), 155 deletions(-) diff --git a/src/components/Documents/DocumentVersionList.jsx b/src/components/Documents/DocumentVersionList.jsx index aea49267..5c01b9c7 100644 --- a/src/components/Documents/DocumentVersionList.jsx +++ b/src/components/Documents/DocumentVersionList.jsx @@ -13,6 +13,9 @@ const DocumentVersionList = ({ isPending, setOpenDocument, VerifyDocument, + RejectDocument, + showVersions, + latestDoc, }) => { const canVerifyDocument = useHasUserPermission(VERIFY_DOCUMENT); const canDownloadDocument = useHasUserPermission(DOWNLOAD_DOCUMENT); @@ -23,146 +26,267 @@ const DocumentVersionList = ({ } }; - const sortedVersions = versionList?.data - ? [...versionList.data].sort((a, b) => b.version - a.version) - : []; - if (versionLoding) { return ; } + const sortedVersions = versionList?.data + ? [...versionList.data].sort((a, b) => b.version - a.version) + : []; + + const currentDoc = sortedVersions.length ? sortedVersions[0] : latestDoc; + + if (!showVersions) { + if (!currentDoc) { + return

No documents available.

; + } + return ( + <> +
+
+
+ {/* Left Side: Document Details */} +
+ +
+
+ + {currentDoc.name} + +
+
+ {getDocuementsStatus(currentDoc.isVerified)} + + File Size: {currentDoc.fileSize} Kb + +
+
+ + Uploaded by + + + + + {`${currentDoc.uploadedBy?.firstName ?? ""} ${currentDoc.uploadedBy?.lastName ?? ""}`.trim() || "N/A"} + + +
+ + {formatUTCToLocalTime(currentDoc?.uploadedAt)} + +
+
+ +
+ + latest + + +
+ {/* Right Side: Status and Info */} +
+ {/* + latest + */} +
+ {currentDoc?.updatedBy && ( + <> + Updated by + + + + {`${currentDoc.updatedBy?.firstName ?? ""} ${currentDoc.updatedBy?.lastName ?? ""}`.trim() || "N/A"} + + + + )} +
+ {/* Conditionally render updated date */} + {currentDoc?.updatedAt && ( + + {formatUTCToLocalTime(currentDoc?.updatedAt)} + + )} +
+
+
+
+ {/* Buttons Div - only for the latest pending document when showVersions is false */} + {currentDoc.isVerified === null && canVerifyDocument && ( +
+ {isPending ? ( + Please Wait... + ) : ( + <> + + + + )} +
+ )} + + ); + } + + // If showVersions is true, display all versions if (!sortedVersions.length) { return

No documents available.

; } return ( - <> -
-
Documents
-
- - -
-
-
-
-
-
- {sortedVersions.map((document, index) => ( -
-
- {/* Left Side: Document Details */} -
- -
-
- - {document.name} - -
-
- {getDocuementsStatus(document.isVerified)} - - File Size: {document.fileSize} Kb - -
-
- - Uploaded by +
+
+
+
+ {sortedVersions.map((document, index) => ( +
+
+ {/* Left Side: Document Details */} +
+ +
+
+ + {document.name} + +
+
+ {getDocuementsStatus(document.isVerified)} + + File Size: {document.fileSize} Kb + +
+
+ + Uploaded by + + + + + {`${document.uploadedBy?.firstName ?? ""} ${document.uploadedBy?.lastName ?? ""}`.trim() || "N/A"} + + +
+ + {formatUTCToLocalTime(document?.uploadedAt)} + + {document?.verifiedAt && ( +
+ + {document.isVerified ? "Approved by" : "Rejected by"} - - {`${document.uploadedBy?.firstName ?? ""} ${document.uploadedBy?.lastName ?? ""}`.trim() || "N/A"} + + {`${document.verifiedBy?.firstName ?? ""} ${document.verifiedBy?.lastName ?? ""}`.trim() || "N/A"} - - {formatUTCToLocalTime(document?.uploadedAt)} -
- {document?.verifiedAt && ( -
- - {document.isVerified ? "Approved by" : "Rejected by"} - - - - - {`${document.verifiedBy?.firstName ?? ""} ${document.verifiedBy?.lastName ?? ""}`.trim() || "N/A"} - - - - {formatUTCToLocalTime(document?.verifiedAt)} - -
- )} -
-
- - {/* Right Side: Status and Actions */} -
- {document.isLatest && ( - - latest - )} - -
- {document?.updatedBy && ( - <> - Updated by - - - - {`${document.updatedBy?.firstName ?? ""} ${document.updatedBy?.lastName ?? ""}`.trim() || "N/A"} - - - - {formatUTCToLocalTime(document?.updatedAt)} - - - )} -
- - version {document.version} - + {/* Conditionally render verified date */} + {document?.verifiedAt && ( + + {formatUTCToLocalTime(document?.verifiedAt)} + + )}
+
+ + version {document.version} + + {document.isLatest && ( + + latest + + )} +
+ {/* Right Side: Status and Actions */} +
+ {/* + version {document.version} + */} + {document.isLatest && ( + + latest + + )} +
+ {document?.updatedBy && ( + <> + Updated by + + + + {`${document.updatedBy?.firstName ?? ""} ${document.updatedBy?.lastName ?? ""}`.trim() || "N/A"} + + + + )} +
+ {/* Conditionally render updated date */} + {document?.updatedAt && ( + + {formatUTCToLocalTime(document?.updatedAt)} + + )} + +
- ))} -
+
+ ))}
- +
); }; diff --git a/src/components/Documents/ViewDocument.jsx b/src/components/Documents/ViewDocument.jsx index 5eb46f37..8270bb08 100644 --- a/src/components/Documents/ViewDocument.jsx +++ b/src/components/Documents/ViewDocument.jsx @@ -1,3 +1,4 @@ +// ViewDocument.jsx import React, { useState } from "react"; import { useDocumentDetails, @@ -12,9 +13,6 @@ import { ITEMS_PER_PAGE, VERIFY_DOCUMENT, } from "../../utils/constants"; -import Pagination from "../common/Pagination"; -import VersionListSkeleton from "./VersionListSkeleton"; -// import DocumentDetailsSkeleton from "./DocumentDetailsSkeleton"; import DocumentDetailsSkeleton from "./DocumentDetailsSkeleton "; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import DocumentVersionList from "./DocumentVersionList"; @@ -22,15 +20,20 @@ import DocumentVersionList from "./DocumentVersionList"; const ViewDocument = () => { const { viewDoc, setOpenDocument } = useDocumentContext(); const [currentPage, setCurrentPage] = useState(1); + const [showVersions, setShowVersions] = useState(false); const canVerifyDocument = useHasUserPermission(VERIFY_DOCUMENT); + + // Document Details const { data, isLoading, isError, error } = useDocumentDetails( viewDoc?.document ); + + // Document Versions (fetch only if toggle is ON) const { data: versionList, - isLoading: versionLoding, + isLoading: versionLoading, } = useDocumentVersionList( - data?.parentAttachmentId, + showVersions ? data?.parentAttachmentId : null, ITEMS_PER_PAGE - 10, currentPage ); @@ -41,6 +44,7 @@ const ViewDocument = () => { } }; + // Verify / Reject const { mutate: VerifyDoc, isPending } = useVerifyDocument(); const VerifyDocument = () => { VerifyDoc({ documentId: viewDoc?.document, isVerify: true }); @@ -57,11 +61,12 @@ const ViewDocument = () => {

{error?.response?.status}

); - console.log("kartik", data) + return (

Document Details

+ {/* Document Info Rows */}
@@ -103,14 +108,7 @@ const ViewDocument = () => { {formatUTCToLocalTime(data.uploadedAt)}
-
- - Updated At: - - - {formatUTCToLocalTime(data.updatedAt) || "-"} - -
+
@@ -144,39 +142,32 @@ const ViewDocument = () => {
- {/* Verify / Reject */} - {data.isVerified === null && canVerifyDocument && ( -
- {isPending ? ( - Please Wait... - ) : ( - <> - - - - )} + {/* Toggle for Versions */} +
+

Documents:

+
+ + setShowVersions(e.target.checked)} + />
- )} - +
); From 49b89f74ff505af8f5fa5cd8275931c0042d4a65 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 12:49:21 +0530 Subject: [PATCH 02/10] added view, upload,update and delete permissions --- src/components/Documents/Documents.jsx | 57 +++++++++++++--------- src/components/Documents/DocumentsList.jsx | 19 ++++++-- src/components/Employee/EmployeeNav.jsx | 24 ++++++--- 3 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/components/Documents/Documents.jsx b/src/components/Documents/Documents.jsx index 488023ae..b1dbe493 100644 --- a/src/components/Documents/Documents.jsx +++ b/src/components/Documents/Documents.jsx @@ -16,6 +16,7 @@ import ManageDocument from "./ManageDocument"; import ViewDocument from "./ViewDocument"; import DocumentViewerModal from "./DocumentViewerModal"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; +import { useProfile } from "../../hooks/useProfile"; // Context export const DocumentContext = createContext(); @@ -47,6 +48,7 @@ export const getDocuementsStatus = (status) => { } }; const Documents = ({ Document_Entity, Entity }) => { + const [isSelf, setIsSelf] = useState(false); const [searchText, setSearchText] = useState(""); const [isActive, setIsActive] = useState(true); const [filters, setFilter] = useState(); @@ -63,8 +65,14 @@ const Documents = ({ Document_Entity, Entity }) => { document: null, isOpen: false, }); + const { profile } = useProfile(); - const canUploadDocument = useHasUserPermission(UPLOAD_DOCUMENT) + useEffect(() => { + if (profile?.employeeInfo?.id) { + setIsSelf(profile.employeeInfo.id === employeeId); + } + }, [profile?.employeeInfo?.id, employeeId]); + const canUploadDocument = useHasUserPermission(UPLOAD_DOCUMENT); const { setOffcanvasContent, setShowTrigger } = useFab(); @@ -114,13 +122,16 @@ const Documents = ({ Document_Entity, Entity }) => {
{/* Search */}
-
setSearchText(e.target.value)} - className="form-control form-control-sm" - placeholder="Search Document" - />
+
+ {" "} + setSearchText(e.target.value)} + className="form-control form-control-sm" + placeholder="Search Document" + /> +
- {/* Actions */}
@@ -157,21 +167,22 @@ const Documents = ({ Document_Entity, Entity }) => { }`} > */} - - {canUploadDocument && ()} + {(isSelf || canUploadDocument) && ( + + )}
{ + const { employeeId } = useParams(); + const [isSelf, setIsSelf] = useState(false); + const { profile } = useProfile(); + const canDeleteDocument = useHasUserPermission(DELETE_DOCUMENT); + const canModifyDocument = useHasUserPermission(MODIFY_DOCUMENT); + useEffect(() => { + if (profile?.employeeInfo?.id && employeeId) { + setIsSelf(String(profile.employeeInfo.id) === String(employeeId)); + } + }, [profile?.employeeInfo?.id, employeeId]); const [IsDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const [deletingId, setDeletingId] = useState(null); const [restoringIds, setRestoringIds] = useState([]); const debouncedSearch = useDebounce(searchText, 500); const [currentPage, setCurrentPage] = useState(1); - const canDeleteDocument = useHasUserPermission(DELETE_DOCUMENT); - const canModifyDocument = useHasUserPermission(MODIFY_DOCUMENT); + const { data, isError, isLoading, error, refetch, isFetching } = useDocumentListByEntityId( Document_Entity, @@ -205,7 +216,7 @@ const DocumentsList = ({ } > - {canModifyDocument && ( + {(isSelf || canModifyDocument) && ( @@ -214,7 +225,7 @@ const DocumentsList = ({ > )} - {canDeleteDocument && ( + {(isSelf || canDeleteDocument) && ( { diff --git a/src/components/Employee/EmployeeNav.jsx b/src/components/Employee/EmployeeNav.jsx index f5356ffe..8c25aa22 100644 --- a/src/components/Employee/EmployeeNav.jsx +++ b/src/components/Employee/EmployeeNav.jsx @@ -1,19 +1,31 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { VIEW_DOCUMENT } from "../../utils/constants"; +import { useProfile } from "../../hooks/useProfile"; +import { useParams } from "react-router-dom"; const EmployeeNav = ({ onPillClick, activePill }) => { - const canViewDocuments = useHasUserPermission(VIEW_DOCUMENT) - const tabs = [ + const { employeeId } = useParams(); + const [isAbleToViewDocuments, setIsAbleToViewDocuments] = useState(false); + + const canViewDocuments = useHasUserPermission(VIEW_DOCUMENT); + const { profile } = useProfile(); + + useEffect(() => { + if (profile?.employeeInfo?.id) { + setIsAbleToViewDocuments(profile.employeeInfo.id === employeeId); + } + }, [profile?.employeeInfo?.id, employeeId]); + + const tabs = [ { key: "profile", icon: "bx bx-user", label: "Profile" }, { key: "attendance", icon: "bx bx-group", label: "Attendances" }, - canViewDocuments && { + (isAbleToViewDocuments || canViewDocuments) && { key: "documents", icon: "bx bx-file", label: "Documents", }, { key: "activities", icon: "bx bx-grid-alt", label: "Activities" }, - ].filter(Boolean); - + ].filter(Boolean); return (
From f8466e5f4afc1145da284f0b5793ffeeb60e0379 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 13:17:47 +0530 Subject: [PATCH 03/10] changed text font of SelectMulti tag value scondaru to semibold --- src/components/common/SelectMultiple.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/SelectMultiple.jsx b/src/components/common/SelectMultiple.jsx index 3e80b696..0dee93d3 100644 --- a/src/components/common/SelectMultiple.jsx +++ b/src/components/common/SelectMultiple.jsx @@ -110,7 +110,7 @@ const SelectMultiple = ({ onChange={() => handleCheckboxChange(valueVal)} style={{ marginRight: 8 }} /> - +
); })} From d5b3c25b458c22fd01e0477980f85cacf2ac17af Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 13:31:30 +0530 Subject: [PATCH 04/10] added flag for pick future date or not --- src/components/Documents/DocumentFilterPanel.jsx | 3 ++- src/components/common/DateRangePicker.jsx | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/Documents/DocumentFilterPanel.jsx b/src/components/Documents/DocumentFilterPanel.jsx index 830648a7..c94403fd 100644 --- a/src/components/Documents/DocumentFilterPanel.jsx +++ b/src/components/Documents/DocumentFilterPanel.jsx @@ -96,8 +96,9 @@ const DocumentFilterPanel = ({ entityTypeId, onApply }) => { placeholder="DD-MM-YYYY To DD-MM-YYYY" startField="startDate" endField="endDate" - defaultRange={false} + defaultRange={true} resetSignal={resetKey} + maxDate={new Date()} />
diff --git a/src/components/common/DateRangePicker.jsx b/src/components/common/DateRangePicker.jsx index 2dce634b..c349e25a 100644 --- a/src/components/common/DateRangePicker.jsx +++ b/src/components/common/DateRangePicker.jsx @@ -84,6 +84,7 @@ export const DateRangePicker1 = ({ allowText = false, resetSignal, defaultRange = true, + maxDate = null, ...rest }) => { const inputRef = useRef(null); @@ -117,6 +118,7 @@ export const DateRangePicker1 = ({ mode: "range", dateFormat: "d-m-Y", allowInput: allowText, + maxDate , onChange: (selectedDates) => { if (selectedDates.length === 2) { const [start, end] = selectedDates; From 13a517f998853019d89238587ef542d3840989bd Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 14:13:39 +0530 Subject: [PATCH 05/10] show msg once restored document --- src/components/Documents/DocumentsList.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/Documents/DocumentsList.jsx b/src/components/Documents/DocumentsList.jsx index f62e5bc5..17ce7696 100644 --- a/src/components/Documents/DocumentsList.jsx +++ b/src/components/Documents/DocumentsList.jsx @@ -19,6 +19,7 @@ import { isPending } from "@reduxjs/toolkit"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { useProfile } from "../../hooks/useProfile"; import { useParams } from "react-router-dom"; +import showToast from "../../services/toastService"; const DocumentsList = ({ Document_Entity, @@ -105,6 +106,7 @@ const DocumentsList = ({ { onSettled: () => { setRestoringIds((prev) => prev.filter((id) => id !== docId)); + showToast("Document restored successfully","success") refetch(); }, } From 1bd951636a4ddd05de594fe5ab4324faba884a66 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 14:27:26 +0530 Subject: [PATCH 06/10] added proper msg showing whenver user did opertion for delete and restore --- src/components/Documents/DocumentsList.jsx | 1 - src/hooks/useDocument.js | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/components/Documents/DocumentsList.jsx b/src/components/Documents/DocumentsList.jsx index 17ce7696..b56060ea 100644 --- a/src/components/Documents/DocumentsList.jsx +++ b/src/components/Documents/DocumentsList.jsx @@ -106,7 +106,6 @@ const DocumentsList = ({ { onSettled: () => { setRestoringIds((prev) => prev.filter((id) => id !== docId)); - showToast("Document restored successfully","success") refetch(); }, } diff --git a/src/hooks/useDocument.js b/src/hooks/useDocument.js index fc07f21d..5569d878 100644 --- a/src/hooks/useDocument.js +++ b/src/hooks/useDocument.js @@ -185,12 +185,9 @@ export const useActiveInActiveDocument = ()=>{ return useMutation({ mutationFn:async({documentId,isActive}) => await DocumentRepository.deleteDocument(documentId,isActive), onSuccess: (data, variables) => { + const {isActive} = variables; queryClient.invalidateQueries({ queryKey: ["DocumentList"] }); - showToast( - data.response.data.message || - "Document Successfully Verified !", - "success" - ); + showToast(`Document ${isActive ? "restored":"Deleted"} successfully`,"success") }, onError: (error) => { showToast( From fdc377cc3af5cacfd4bf8249f2f784e337703b1d Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 14:30:08 +0530 Subject: [PATCH 07/10] employee joing date display regular local format --- src/components/Employee/EmpBanner.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/Employee/EmpBanner.jsx b/src/components/Employee/EmpBanner.jsx index 6cb12073..bb019bc6 100644 --- a/src/components/Employee/EmpBanner.jsx +++ b/src/components/Employee/EmpBanner.jsx @@ -3,6 +3,7 @@ import React, { useState, useEffect } from "react"; import { useChangePassword } from "../../components/Context/ChangePasswordContext"; import GlobalModel from "../common/GlobalModel"; import ManageEmployee from "./ManageEmployee"; +import { formatUTCToLocalTime } from "../../utils/dateUtils"; const EmpBanner = ({ profile, loggedInUser }) => { const { openChangePassword } = useChangePassword(); @@ -77,7 +78,7 @@ const EmpBanner = ({ profile, loggedInUser }) => { {" "} Joined on{" "} {profile?.joiningDate ? ( - new Date(profile.joiningDate).toLocaleDateString() + formatUTCToLocalTime(profile.joiningDate) ) : ( NA )} From 67d399e3d3205eb9281f790e999182fe35c38850 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 14:44:38 +0530 Subject: [PATCH 08/10] set proerly alignment for label and value --- src/components/Employee/EmpOverview.jsx | 204 ++++++++++++++---------- 1 file changed, 122 insertions(+), 82 deletions(-) diff --git a/src/components/Employee/EmpOverview.jsx b/src/components/Employee/EmpOverview.jsx index 6b396745..ae7b2f7e 100644 --- a/src/components/Employee/EmpOverview.jsx +++ b/src/components/Employee/EmpOverview.jsx @@ -9,80 +9,105 @@ const EmpOverview = ({ profile }) => {
- {/* About Heading */} About {/* Full Name */} -
- - +
+
+ Full Name - - : - +
+
:
+
{profile?.firstName || NA} {profile?.lastName || ""} - +
{/* Status */} -
- - +
+
+ Status - - : - Active +
+
:
+
Active
{/* Role */} -
- - +
+
+ Role - - : - {profile?.jobRole || NA} +
+
:
+
+ {profile?.jobRole || NA} +
{/* Gender */} -
- - +
+
+ Gender - - : - {profile?.gender || NA} +
+
:
+
+ {profile?.gender || NA} +
{/* Birth Date */} -
- - +
+
+ Birth Date - - : - - {profile?.birthDate - ? new Date(profile.birthDate).toLocaleDateString() - : NA} - +
+
:
+
+ {profile?.birthDate ? ( + new Date(profile.birthDate).toLocaleDateString() + ) : ( + NA + )} +
{/* Joining Date */} -
- - +
+
+ Joining Date - - : - - {profile?.joiningDate - ? new Date(profile.joiningDate).toLocaleDateString() - : NA} - +
+
:
+
+ {profile?.joiningDate ? ( + new Date(profile.joiningDate).toLocaleDateString() + ) : ( + NA + )} +
{/* Contacts Heading */} @@ -91,68 +116,83 @@ const EmpOverview = ({ profile }) => { {/* Contact Number */} -
- - +
+
+ Contact - - : - {profile?.phoneNumber || NA} +
+
:
+
+ {profile?.phoneNumber || NA} +
{/* Email */} -
- - +
+
+ Email - - : - +
+
:
+
{profile?.email ? ( {profile.email} ) : ( NA )} - +
- {/* Emergency Contact */} -
- - +
+
+ Emergency Contact - - : - +
+
:
+
{profile?.emergencyContactPerson || NA} - +
{/* Emergency Phone */} -
- - +
+
+ Emergency Phone - - : - +
+
:
+
{profile?.emergencyPhoneNumber || NA} - +
{/* Address */} -
- - +
+
+ Address - - : - +
+
:
+
{profile?.currentAddress || NA} - +
-
From 1138bdf009c117837df31baf396056626c122450 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 15:06:25 +0530 Subject: [PATCH 09/10] display properly version list --- src/components/Documents/DocumentVersionList.jsx | 16 +++++----------- src/components/Documents/ViewDocument.jsx | 3 +-- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/components/Documents/DocumentVersionList.jsx b/src/components/Documents/DocumentVersionList.jsx index 5c01b9c7..ea1bdc13 100644 --- a/src/components/Documents/DocumentVersionList.jsx +++ b/src/components/Documents/DocumentVersionList.jsx @@ -60,7 +60,7 @@ const DocumentVersionList = ({
{getDocuementsStatus(currentDoc.isVerified)} - + File Size: {currentDoc.fileSize} Kb
@@ -160,17 +160,14 @@ const DocumentVersionList = ({ } return ( -
-
-
-
+
{sortedVersions.map((document, index) => (
- {/* Left Side: Document Details */} +
{getDocuementsStatus(document.isVerified)} - + File Size: {document.fileSize} Kb
@@ -284,10 +281,7 @@ const DocumentVersionList = ({
))}
-
-
-
); }; -export default DocumentVersionList; \ No newline at end of file +export default DocumentVersionList; diff --git a/src/components/Documents/ViewDocument.jsx b/src/components/Documents/ViewDocument.jsx index 8270bb08..6405a3ed 100644 --- a/src/components/Documents/ViewDocument.jsx +++ b/src/components/Documents/ViewDocument.jsx @@ -1,4 +1,3 @@ -// ViewDocument.jsx import React, { useState } from "react"; import { useDocumentDetails, @@ -173,4 +172,4 @@ const ViewDocument = () => { ); }; -export default ViewDocument; +export default ViewDocument; \ No newline at end of file From 755eb94ae3d479ee11db802140556a6ec668007b Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Tue, 9 Sep 2025 15:41:27 +0530 Subject: [PATCH 10/10] added padding and marging at project feature permission card --- src/components/Project/ProjectPermission.jsx | 4 ++-- src/components/Project/ProjectSetting.jsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Project/ProjectPermission.jsx b/src/components/Project/ProjectPermission.jsx index 10086ce3..e12e8e91 100644 --- a/src/components/Project/ProjectPermission.jsx +++ b/src/components/Project/ProjectPermission.jsx @@ -105,7 +105,7 @@ const ProjectPermission = () => { }; return ( -
+
{/* Employee Dropdown */}
@@ -142,7 +142,7 @@ const ProjectPermission = () => { {/* Permissions */} {ProjectModules.map((feature) => ( -
+
{feature.name}
diff --git a/src/components/Project/ProjectSetting.jsx b/src/components/Project/ProjectSetting.jsx index eef8bc1e..2b834ad8 100644 --- a/src/components/Project/ProjectSetting.jsx +++ b/src/components/Project/ProjectSetting.jsx @@ -31,7 +31,7 @@ const ProjectSetting = () => { return (
-
+