diff --git a/src/components/Project/ProjectOverview.jsx b/src/components/Project/ProjectStatistics.jsx
similarity index 62%
rename from src/components/Project/ProjectOverview.jsx
rename to src/components/Project/ProjectStatistics.jsx
index ee665144..7ec5dbd3 100644
--- a/src/components/Project/ProjectOverview.jsx
+++ b/src/components/Project/ProjectStatistics.jsx
@@ -9,7 +9,7 @@ import {
import ReactApexChart from "react-apexcharts";
import Chart from "react-apexcharts";
-const ProjectOverview = ({ project }) => {
+const ProjectStatistics = ({ project }) => {
const { data } = useProjects();
const [current_project, setCurrentProject] = useState(
data?.find((pro) => pro.id == project)
@@ -133,10 +133,10 @@ const ProjectOverview = ({ project }) => {
},
},
stroke: {
- lineCap: "round",
+ lineCap: "round",
},
- labels: ["Progress"],
- series: [percentage],
+ labels: ["Progress"],
+ series: [percentage],
};
};
const [radialPercentage, setRadialPercentage] = useState(75); // Initial percentage
@@ -165,7 +165,7 @@ const ProjectOverview = ({ project }) => {
}, [selectedProject]);
return (
-
+
{" "}
@@ -173,78 +173,78 @@ const ProjectOverview = ({ project }) => {
Project Statistics
-
-
-
-
- {/* Centered Chart */}
-
-
- {/* Info Section */}
-
-
- {/* Tasks Planned */}
-
-
-
-
-
+
+
+
+
+ {/* Centered Chart */}
+
-
-
Tasks Planned
-
- {FormattedNumber(current_project?.plannedWork)}
-
+
+ {/* Info Section */}
+
+
+ {/* Tasks Planned */}
+
+
+
+
+
+
+
+ Tasks Planned
+
+ {FormattedNumber(current_project?.plannedWork)}
+
+
+
+
+ {/* Tasks Completed */}
+
+
+
+
+
+
+
+ Tasks Completed
+
+ {FormattedNumber(current_project?.completedWork)}
+
+
+
+
+ {/* Team Size */}
+
+
+
+
+
+
+
+ Current Team Size
+
+ {FormattedNumber(current_project?.teamSize)}
+
+
+
+
-
- {/* Tasks Completed */}
-
-
-
-
-
-
-
- Tasks Completed
-
- {FormattedNumber(current_project?.completedWork)}
-
-
-
-
- {/* Team Size */}
-
-
-
-
-
-
-
- Current Team Size
-
- {FormattedNumber(current_project?.teamSize)}
-
-
-
-
-
+
+
-
-
-
);
};
-export default ProjectOverview;
\ No newline at end of file
+export default ProjectStatistics;
\ No newline at end of file
diff --git a/src/components/collections/AddPayment.jsx b/src/components/collections/AddPayment.jsx
index a47200ee..1ad641b8 100644
--- a/src/components/collections/AddPayment.jsx
+++ b/src/components/collections/AddPayment.jsx
@@ -72,7 +72,7 @@ const AddPayment = ({ onClose }) => {
Transaction Date
-
{
const selectedProject = useSelectedProject();
const searchDebounce = useDebounce(searchString, 500);
-
+
const { data, isLoading, isError, error } = useCollections(
- ITEMS_PER_PAGE,
- currentPage,
+ selectedProject,
+ searchDebounce,
localToUtc(fromDate),
localToUtc(toDate),
- isPending,
+ ITEMS_PER_PAGE,
+ currentPage,
true,
- selectedProject,
- searchDebounce
+ isPending
);
const { setProcessedPayment, setAddPayment, setViewCollection } =
useCollectionContext();
@@ -186,84 +186,84 @@ const CollectionList = ({ fromDate, toDate, isPending, searchString }) => {
canViewCollection ||
canEditCollection ||
canCreate) && (
-
-
+
+ )}
))
) : (
diff --git a/src/hooks/useCollections.jsx b/src/hooks/useCollections.jsx
index c300462d..324c678a 100644
--- a/src/hooks/useCollections.jsx
+++ b/src/hooks/useCollections.jsx
@@ -2,39 +2,80 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { CollectionRepository } from "../repositories/ColllectionRepository";
import showToast from "../services/toastService";
+// export const useCollections = (
+// pageSize,
+// pageNumber,
+// fromDate,
+// toDate,
+// isPending,
+// isActive,
+// projectId,
+// searchString
+// ) => {
+// return useQuery({
+// queryKey: [
+// "collections",
+// pageSize,
+// pageNumber,
+// fromDate,
+// toDate,
+// isPending,
+// isActive,
+// projectId,
+// searchString,
+// ],
+
+// queryFn: async () => {
+// const response = await CollectionRepository.getCollections(
+// pageSize,
+// pageNumber,
+// fromDate,
+// toDate,
+// isPending,
+// isActive,
+// projectId,
+// searchString
+// );
+// return response.data;
+// },
+
+// keepPreviousData: true,
+// staleTime: 1000 * 60 * 1,
+// });
+// };
export const useCollections = (
- pageSize,
- pageNumber,
+ projectId,
+ searchString,
fromDate,
toDate,
- isPending,
+ pageSize,
+ pageNumber,
isActive,
- projectId,
- searchString
+ isPending
) => {
return useQuery({
queryKey: [
"collections",
- pageSize,
- pageNumber,
- fromDate,
- toDate,
- isPending,
- isActive,
projectId,
searchString,
+ fromDate,
+ toDate,
+ pageSize,
+ pageNumber,
+ isActive,
+ isPending,
],
queryFn: async () => {
const response = await CollectionRepository.getCollections(
- pageSize,
- pageNumber,
+ projectId,
+ searchString,
fromDate,
toDate,
- isPending,
+ pageSize,
+ pageNumber,
isActive,
- projectId,
- searchString
+ isPending
);
return response.data;
},
@@ -44,15 +85,14 @@ export const useCollections = (
});
};
-
-export const useCollection =(collectionId)=>{
+export const useCollection = (collectionId) => {
return useQuery({
- queryKey:["collection",collectionId],
- queryFn:async()=> {
+ queryKey: ["collection", collectionId],
+ queryFn: async () => {
const resp = await CollectionRepository.getCollection(collectionId);
return resp.data
},
- enabled:!!collectionId
+ enabled: !!collectionId
})
}
@@ -133,11 +173,11 @@ export const useAddComment = (onSuccessCallBack) => {
});
};
-export const useUpdateCollection =(onSuccessCallBack)=>{
- const client = useQueryClient();
+export const useUpdateCollection = (onSuccessCallBack) => {
+ const client = useQueryClient();
return useMutation({
- mutationFn:async({collectionId,payload})=> await CollectionRepository.updateCollection(collectionId,payload),
- onSuccess: () => {
+ mutationFn: async ({ collectionId, payload }) => await CollectionRepository.updateCollection(collectionId, payload),
+ onSuccess: () => {
client.invalidateQueries({ queryKey: ["collections"] });
client.invalidateQueries({ queryKey: ["collection"] });
showToast("Collection Updated Successfully", "success");
diff --git a/src/hooks/useProjects.js b/src/hooks/useProjects.js
index b958ff32..b73f3db9 100644
--- a/src/hooks/useProjects.js
+++ b/src/hooks/useProjects.js
@@ -20,13 +20,13 @@ export const useCurrentService = () => {
// ------------------------------Query-------------------
-export const useProjects = (pageSize,pageNumber) => {
+export const useProjects = (pageNumber,pageSize) => {
const loggedUser = useSelector((store) => store.globalVariables.loginUser);
return useQuery({
- queryKey: ["ProjectsList",pageSize,pageNumber],
+ queryKey: ["ProjectsList",pageNumber,pageSize],
queryFn: async () => {
- const response = await ProjectRepository.getProjectList(pageSize,pageNumber);
- return response.data;
+ const response = await ProjectRepository.getProjectList(pageNumber,pageSize);
+ return response?.data?.data;
},
enabled: !!loggedUser,
});
diff --git a/src/pages/AdvancePayment/AdvancePaymentPage.jsx b/src/pages/AdvancePayment/AdvancePaymentPage.jsx
index e81c69a5..9af4a6c9 100644
--- a/src/pages/AdvancePayment/AdvancePaymentPage.jsx
+++ b/src/pages/AdvancePayment/AdvancePaymentPage.jsx
@@ -26,7 +26,7 @@ export const useAdvancePaymentContext = () => {
};
const AdvancePaymentPage = () => {
const [balance, setBalance] = useState(null);
- const {control, reset, watch } = useForm({
+ const { control, reset, watch } = useForm({
defaultValues: {
employeeId: "",
},
@@ -39,14 +39,13 @@ const AdvancePaymentPage = () => {
employeeId: selectedEmpoyee || "",
});
}, [reset]);
-
return (
{
balance > 0 ? "text-success" : "text-danger"
} fs-5 fw-bold ms-1`}
>
- { balance > 0 ? : } {formatFigure(balance, {
+ {balance > 0 ? (
+
+ ) : (
+
+ )}{" "}
+ {formatFigure(balance, {
type: "currency",
currency: "INR",
})}
@@ -85,8 +89,6 @@ const AdvancePaymentPage = () => {
-
-
diff --git a/src/pages/Expense/ExpensePage.jsx b/src/pages/Expense/ExpensePage.jsx
index 034651c2..e7ac3638 100644
--- a/src/pages/Expense/ExpensePage.jsx
+++ b/src/pages/Expense/ExpensePage.jsx
@@ -1,4 +1,10 @@
-import React, { createContext, useContext, useState, useEffect, useRef } from "react";
+import React, {
+ createContext,
+ useContext,
+ useState,
+ useEffect,
+ useRef,
+} from "react";
import { useForm, useFormContext } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { useSelector } from "react-redux";
@@ -19,7 +25,10 @@ import {
VIEW_SELF_EXPENSE,
} from "../../utils/constants";
-import { defaultFilter, SearchSchema } from "../../components/Expenses/ExpenseSchema";
+import {
+ defaultFilter,
+ SearchSchema,
+} from "../../components/Expenses/ExpenseSchema";
import PreviewDocument from "../../components/Expenses/PreviewDocument";
// Context
@@ -102,14 +111,14 @@ const ExpensePage = () => {
setManageExpenseModal,
setDocumentView,
filterData,
- removeFilterChip
+ removeFilterChip,
};
return (
{IsViewAll || IsViewSelf || IsCreatedAble ? (
@@ -128,7 +137,6 @@ const ExpensePage = () => {
-
{IsCreatedAble && (
{
-
-
{
};
const ImageGalleryPage = () => {
- const [filter,setFilter] = useState()
+ const [filter, setFilter] = useState();
const selectedProjectId = useSelectedProject();
const { projectNames } = useProjectName();
-
const [openGallery, setOpenGallery] = useState({ isOpen: false, data: null });
@@ -56,24 +55,26 @@ const ImageGalleryPage = () => {
setOpenGallery,
};
- const { setOffcanvasContent, setShowTrigger } = useFab();
+ const { setOffcanvasContent, setShowTrigger } = useFab();
- useEffect(()=>{
+ useEffect(() => {
setShowTrigger(true);
- setOffcanvasContent("Gallery Filter",);
-
- return ()=>{
- setOffcanvasContent("",null)
- setShowTrigger(false);
- }
- },[])
+ setOffcanvasContent(
+ "Gallery Filter",
+
+ );
+ return () => {
+ setOffcanvasContent("", null);
+ setShowTrigger(false);
+ };
+ }, []);
return (
@@ -104,7 +105,7 @@ const ImageGalleryPage = () => {
)} */}
-
+
{openGallery?.isOpen && (
diff --git a/src/pages/Organization/OrganizationPage.jsx b/src/pages/Organization/OrganizationPage.jsx
index 95629d87..017245e9 100644
--- a/src/pages/Organization/OrganizationPage.jsx
+++ b/src/pages/Organization/OrganizationPage.jsx
@@ -6,12 +6,15 @@ import OrganizationsList from "../../components/Organization/OrganizationsList";
const OrganizationPage = () => {
const { isOpen, orgData, startStep, onOpen, flowType } =
useOrganizationModal();
- const [searchText, setSearchText] = useState("")
+ const [searchText, setSearchText] = useState("");
return (
@@ -29,27 +32,24 @@ const OrganizationPage = () => {
-
+
onOpen({ startStep: 2, flowType: "default" })}
>
-
-
- Add New Organization
-
+
+
+ Add New Organization
+
-
-
-
+
-
);
};
diff --git a/src/pages/PaymentRequest/PaymentRequestPage.jsx b/src/pages/PaymentRequest/PaymentRequestPage.jsx
index d19b8250..286e99bb 100644
--- a/src/pages/PaymentRequest/PaymentRequestPage.jsx
+++ b/src/pages/PaymentRequest/PaymentRequestPage.jsx
@@ -6,7 +6,10 @@ import ExpenseFilterPanel from "../../components/Expenses/ExpenseFilterPanel";
import { useFab } from "../../Context/FabContext";
import PaymentRequestList from "../../components/PaymentRequest/PaymentRequestList";
import PaymentRequestFilterPanel from "../../components/PaymentRequest/PaymentRequestFilterPanel";
-import { defaultPaymentRequestFilter,SearchPaymentRequestSchema } from "../../components/PaymentRequest/PaymentRequestSchema";
+import {
+ defaultPaymentRequestFilter,
+ SearchPaymentRequestSchema,
+} from "../../components/PaymentRequest/PaymentRequestSchema";
import ViewPaymentRequest from "../../components/PaymentRequest/ViewPaymentRequest";
import PreviewDocument from "../../components/Expenses/PreviewDocument";
import MakeExpense from "../../components/PaymentRequest/MakeExpense";
@@ -15,7 +18,9 @@ export const PaymentRequestContext = createContext();
export const usePaymentRequestContext = () => {
const context = useContext(PaymentRequestContext);
if (!context) {
- throw new Error("usePaymentRequestContext must be used within an ExpenseProvider");
+ throw new Error(
+ "usePaymentRequestContext must be used within an ExpenseProvider"
+ );
}
return context;
};
@@ -24,16 +29,21 @@ const PaymentRequestPage = () => {
IsOpen: null,
RequestId: null,
});
- const [ViewRequest,setVieRequest] = useState({view:false,requestId:null})
+ const [ViewRequest, setVieRequest] = useState({
+ view: false,
+ requestId: null,
+ });
const { setOffcanvasContent, setShowTrigger } = useFab();
const [filters, setFilters] = useState(defaultPaymentRequestFilter);
- const [ViewDocument, setDocumentView] = useState({
- IsOpen: false,
- Image: null,
- });
- const [isExpenseGenerate,setIsExpenseGenerate] = useState({IsOpen: null,
- RequestId: null,})
- const [modalSize,setModalSize] = useState("md")
+ const [ViewDocument, setDocumentView] = useState({
+ IsOpen: false,
+ Image: null,
+ });
+ const [isExpenseGenerate, setIsExpenseGenerate] = useState({
+ IsOpen: null,
+ RequestId: null,
+ });
+ const [modalSize, setModalSize] = useState("md");
const [search, setSearch] = useState("");
const contextValue = {
@@ -42,11 +52,10 @@ const PaymentRequestPage = () => {
setDocumentView,
setModalSize,
setIsExpenseGenerate,
- isExpenseGenerate
+ isExpenseGenerate,
};
useEffect(() => {
-
setShowTrigger(true);
setOffcanvasContent(
"Payment Request Filters",
@@ -65,7 +74,7 @@ const PaymentRequestPage = () => {
{/* Breadcrumb */}
{
className="form-control form-control-sm w-auto"
placeholder="Search Payment Request"
value={search}
- style={{minWidth:"200px"}}
+ style={{ minWidth: "200px" }}
onChange={(e) => setSearch(e.target.value)}
/>
@@ -106,10 +115,7 @@ const PaymentRequestPage = () => {