From 0eaea6a2322ac09f421f64a1d996397aa34189f1 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Fri, 30 May 2025 11:40:47 +0530 Subject: [PATCH] added more option for sorting contact list - projectId --- src/hooks/useDirectory.js | 10 +++++----- src/repositories/DirectoryRepository.jsx | 12 +++++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/hooks/useDirectory.js b/src/hooks/useDirectory.js index 1c0c3433..7c2fb13f 100644 --- a/src/hooks/useDirectory.js +++ b/src/hooks/useDirectory.js @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import { DirectoryRepository } from "../repositories/DirectoryRepository"; import { cacheData, getCachedData } from "../slices/apiDataManager"; -export const useDirectory = (isActive) => { +export const useDirectory = (isActive,prefernceContacts) => { const [contacts, setContacts] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); @@ -10,7 +10,7 @@ export const useDirectory = (isActive) => { const fetch = async (activeParam = isActive) => { setLoading(true); try { - const response = await DirectoryRepository.GetContacts(activeParam); + const response = await DirectoryRepository.GetContacts(activeParam,prefernceContacts); setContacts(response.data); cacheData("contacts", { data: response.data, isActive: activeParam }); } catch (error) { @@ -22,12 +22,12 @@ export const useDirectory = (isActive) => { useEffect(() => { const cachedContacts = getCachedData("contacts"); - if (!cachedContacts?.data || cachedContacts.isActive !== isActive) { - fetch(isActive); + if (!cachedContacts?.data || cachedContacts.isActive !== isActive || prefernceContacts) { + fetch(isActive,prefernceContacts); } else { setContacts(cachedContacts.data); } - }, [isActive]); + }, [isActive,prefernceContacts]); return { contacts, diff --git a/src/repositories/DirectoryRepository.jsx b/src/repositories/DirectoryRepository.jsx index ac9fa617..065859f6 100644 --- a/src/repositories/DirectoryRepository.jsx +++ b/src/repositories/DirectoryRepository.jsx @@ -3,7 +3,17 @@ import {api} from "../utils/axiosClient"; export const DirectoryRepository = { GetOrganizations:()=>api.get('/api/directory/organization'), - GetContacts: (isActive) => api.get( `/api/directory?active=${isActive}` ), + GetContacts: (isActive, projectId) => { + const params = new URLSearchParams(); + params.append("active", isActive); + + if (projectId) { + params.append("projectId", projectId); + } + + return api.get(`/api/Directory?${params.toString()}`); +} +, CreateContact: ( data ) => api.post( '/api/directory', data ), UpdateContact: ( id, data ) => api.put( `/api/directory/${ id }`, data ), DeleteContact: ( id,isActive) => api.delete( `/api/directory/${ id }/?active=${isActive}` ),