diff --git a/src/components/Tenanat/Profile.jsx b/src/components/Tenanat/Profile.jsx index 13a6547b..0f96a5ac 100644 --- a/src/components/Tenanat/Profile.jsx +++ b/src/components/Tenanat/Profile.jsx @@ -31,10 +31,12 @@ const Profile = ({ data }) => {
Profile
- -
+ {data?.description && ( +

{data?.description}

+ )} +
diff --git a/src/components/Tenanat/TenantFilterPanel.jsx b/src/components/Tenanat/TenantFilterPanel.jsx index 7bf86fad..6a8ae374 100644 --- a/src/components/Tenanat/TenantFilterPanel.jsx +++ b/src/components/Tenanat/TenantFilterPanel.jsx @@ -5,7 +5,7 @@ import { defaultFilterValues, filterSchema } from "./TenantSchema"; import Label from "../common/Label"; import SelectMultiple from "../common/SelectMultiple"; import { useIndustries } from "../../hooks/useTenant"; -import { reference } from "../../utils/constants"; +import { reference, TENANT_STATUS } from "../../utils/constants"; import { DateRangePicker1 } from "../common/DateRangePicker"; import moment from "moment"; @@ -22,9 +22,7 @@ const TenantFilterPanel = ({onApply}) => { }; const onSubmit = (formData) => { onApply({ - ...formData, - startDate: moment.utc(formData.startDate, "DD-MM-YYYY").toISOString(), - endDate: moment.utc(formData.endDate, "DD-MM-YYYY").toISOString(), + ...formData }) }; const onClear = () => { @@ -38,26 +36,42 @@ const TenantFilterPanel = ({onApply}) => {
- + - +
+ - + +
+ +
+
+ +
{/* { diff --git a/src/components/Tenanat/TenantsList.jsx b/src/components/Tenanat/TenantsList.jsx index 169ce6c6..11867dae 100644 --- a/src/components/Tenanat/TenantsList.jsx +++ b/src/components/Tenanat/TenantsList.jsx @@ -8,16 +8,25 @@ import { TenantTableSkeleton } from "./TenanatSkeleton"; import { useTenantContext } from "../../pages/Tenant/TenantPage"; import { useNavigate } from "react-router-dom"; -const TenantsList = ({filters,searchText,setIsRefetching, setRefetchFn}) => { +const TenantsList = ({ + filters, + searchText, + setIsRefetching, + setRefetchFn, +}) => { const [currentPage, setCurrentPage] = useState(1); - const navigate = useNavigate() - const { data, isLoading, isError, isInitialLoading, error,refetch, isFetching } = useTenants( - currentPage, - filters, - searchText, - ); + const navigate = useNavigate(); + const { + data, + isLoading, + isError, + isInitialLoading, + error, + refetch, + isFetching, + } = useTenants(currentPage, filters, searchText); - const {setRefetching} = useTenantContext() + const { setRefetching } = useTenantContext(); const paginate = (page) => { if (page >= 1 && page <= (data?.totalPages ?? 1)) { @@ -25,8 +34,7 @@ const TenantsList = ({filters,searchText,setIsRefetching, setRefetchFn}) => { } }; - - // Pass the refetch function to parent when component mounts + // Pass the refetch function to parent when component mounts useEffect(() => { setRefetchFn(() => refetch); // store in parent }, [setRefetchFn, refetch]); @@ -41,12 +49,30 @@ const TenantsList = ({filters,searchText,setIsRefetching, setRefetchFn}) => { key: "name", label: "Organization", getValue: (t) => ( -
navigate(`/tenant/${t.id}`)}> - +
navigate(`/tenant/${t.id}`)} + > + {t.logoImage ? ( + {`${t.name} + ) : ( + + )} + {t.name || "N/A"}
), @@ -97,10 +123,8 @@ const TenantsList = ({filters,searchText,setIsRefetching, setRefetchFn}) => { ), }, ]; - if (isInitialLoading) - return ( - - ); + if (isInitialLoading) + return ; if (isError) return
{error.message}
; return ( <> @@ -146,13 +170,13 @@ const TenantsList = ({filters,searchText,setIsRefetching, setRefetchFn}) => { )} - {data?.data?.length > 0 && ( - - )} + {data?.data?.length > 0 && ( + + )}
diff --git a/src/hooks/useTenant.js b/src/hooks/useTenant.js index 6bc952b2..1142cc3a 100644 --- a/src/hooks/useTenant.js +++ b/src/hooks/useTenant.js @@ -5,21 +5,45 @@ import showToast from "../services/toastService"; import { useDispatch } from "react-redux"; import { setCurrentTenant } from "../slices/globalVariablesSlice"; import { ITEMS_PER_PAGE } from "../utils/constants"; +import moment from "moment"; -export const useTenants = (pageNumber, filter = {}, searchString = "") => { + + +const cleanFilter = (filter) => { + const cleaned = { ...filter }; + + ["industryIds", "references"].forEach((key) => { + if (Array.isArray(cleaned[key]) && cleaned[key].length === 0) { + delete cleaned[key]; + } + }); + + // moment.utc() to get consistent UTC ISO strings + if (!cleaned.startDate) { + cleaned.startDate = moment.utc().subtract(7, "days").startOf("day").toISOString(); + } + + if (!cleaned.endDate) { + cleaned.endDate = moment.utc().startOf("day").toISOString(); + } + return cleaned; +}; + + +export const useTenants = (pageNumber, filter, searchString = "") => { return useQuery({ - queryKey: ["Tenants", pageNumber, JSON.stringify(filter), searchString], + queryKey: ["Tenants", pageNumber, filter, searchString], queryFn: async () => { + const cleanedFilter = cleanFilter(filter); const response = await TenantRepository.getTenantList( ITEMS_PER_PAGE, pageNumber, - filter, + cleanedFilter, searchString ); return response.data; }, keepPreviousData: true, - staleTime: 60_000 }); }; diff --git a/src/repositories/TenantRepository.jsx b/src/repositories/TenantRepository.jsx index 06581aca..2631764a 100644 --- a/src/repositories/TenantRepository.jsx +++ b/src/repositories/TenantRepository.jsx @@ -1,17 +1,10 @@ import { api } from "../utils/axiosClient"; export const TenantRepository = { - getTenantList: (pageSize, pageNumber, filter, searchString) => { - const params = new URLSearchParams(); + getTenantList: ( pageSize, pageNumber, filter,searchString) => { + const payloadJsonString = JSON.stringify(filter); - if (pageSize) params.append("pageSize", pageSize); - if (pageNumber) params.append("pageNumber", pageNumber); - if (filter && Object.keys(filter).length > 0) { - params.append("filter", JSON.stringify(filter)); - } - if (searchString) params.append("searchString", searchString); - - return api.get(`/api/Tenant/list?${params.toString()}`); + return api.get(`/api/Tenant/list?pageSize=${pageSize}&pageNumber=${pageNumber}&filter=${payloadJsonString}&searchString=${searchString}`); }, getTenantDetails:(id)=>api.get(`/api/Tenant/details/${id}`), diff --git a/src/utils/constants.jsx b/src/utils/constants.jsx index aa09f1c3..59177459 100644 --- a/src/utils/constants.jsx +++ b/src/utils/constants.jsx @@ -67,6 +67,11 @@ export const ActiveTenant = "297e0d8f-f668-41b5-bfea-e03b354251c8" // 1 - Expense Manage export const EXPENSE_MANAGEMENT = "a4e25142-449b-4334-a6e5-22f70e4732d7" +export const TENANT_STATUS = [ + {id:"62b05792-5115-4f99-8ff5-e8374859b191",name:"Active"}, + {id:"c0b5def8-087e-4235-b3a4-8e2f0ed91b94",name:"In Active"}, + {id:"35d7840a-164a-448b-95e6-efb2ec84a751",name:"Supspended"} +] export const CONSTANT_TEXT = {