From a3191716749b15d09cf3474ccbe53443a50e29f1 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Fri, 16 May 2025 19:13:56 +0530 Subject: [PATCH] added useBuckets hook and set up cached data if have --- src/hooks/useDirectory.js | 43 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/hooks/useDirectory.js b/src/hooks/useDirectory.js index f1e31c14..707200df 100644 --- a/src/hooks/useDirectory.js +++ b/src/hooks/useDirectory.js @@ -1,4 +1,4 @@ -import {useState} from "react" +import {useEffect, useState} from "react" import {DirectoryRepository} from "../repositories/DirectoryRepository"; import {cacheData, getCachedData} from "../slices/apiDataManager"; @@ -20,12 +20,16 @@ export const useDirectory = () => { const response = await DirectoryRepository.GetContacts(); setContacts( response.data ) - cacheData("contacts",response.data) + cacheData( "contacts", response.data ) + setLoading(false) } catch ( error ) { setError( error ); setLoading(false) } + } else + { + setContacts(cache_contacts) } } @@ -35,4 +39,39 @@ export const useDirectory = () => fetch() }, [] ) return {contacts,loading,error} +} + +export const useBuckets = () => +{ + const [ buckets, setbuckets ] = useState(); + const [ loading, setLoading ] = useState(); + const [ Error, setError ] = useState( '' ) + + const fetch = async() => + { const cache_buckets = getCachedData("buckets") + if ( !cache_buckets ) + { + setLoading(true) + try + { + const resp = await DirectoryRepository.GetBucktes(); + setbuckets( resp.data ); + cacheData( "bucktes", resp.data ) + setLoading(false) + } catch ( error ) + { + const msg = error.response.data.message || error.message || "Something wrong"; + setError(msg) + } + } else + { + setbuckets(cache_buckets) + } + } + + useEffect( () => + { + fetch() + }, [] ) + return {buckets,loading,Error} } \ No newline at end of file