marco.pms.web/src/hooks/useImageGallery.js

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;
},
})
}