53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
import { useState, useCallback } from "react";
|
|
// import { ImageGalleryAPI } from "../repositories/ImageGalleyRepository";
|
|
import { ImageGalleryRepository } from "../repositories/ImageGalleryAPI";
|
|
|
|
|
|
import { useInfiniteQuery, useQuery } from "@tanstack/react-query";
|
|
|
|
|
|
const cleanFilter = (filter) => {
|
|
const cleaned = { ...filter };
|
|
|
|
["buildingIds", "floorIds", "workAreaIds", "activityIds","workCategoryIds","uploadedByIds","serviceIds"].forEach((key) => {
|
|
if (Array.isArray(cleaned[key]) && cleaned[key].length === 0) {
|
|
delete cleaned[key];
|
|
}
|
|
});
|
|
return cleaned;
|
|
};;
|
|
|
|
const useImageGallery = (selectedProjectId,pageNumber, pageSize, filters) => {
|
|
|
|
return useQuery({
|
|
queryKey: ["imageGallery", selectedProjectId, pageNumber, pageSize,filters],
|
|
enabled: !!selectedProjectId,
|
|
|
|
queryFn: async () => {
|
|
const cleanedFilter = cleanFilter(filters)
|
|
const res = await ImageGalleryRepository.ImagesGet(
|
|
selectedProjectId,
|
|
pageNumber,
|
|
pageSize,
|
|
cleanedFilter
|
|
);
|
|
return res.data;
|
|
},
|
|
});
|
|
};
|
|
|
|
export default useImageGallery;
|
|
|
|
|
|
|
|
export const useImageGalleryFilter = (project)=>{
|
|
return useQuery({
|
|
queryKey:["imageGalleryFlter",project],
|
|
queryFn:async() => {
|
|
const response = await ImageGalleryRepository.getImageGalleryFilter(project);
|
|
return response.data;
|
|
},
|
|
})
|
|
}
|
|
|