freshyo/packages/ui/src/common-api-hooks/product.api.tsx
2026-01-24 00:13:15 +05:30

40 lines
No EOL
1.2 KiB
TypeScript

import { useQuery } from "@tanstack/react-query";
import axios from "../services/axios";
import type { ProductSummary, GetSlotsProductIdsPayload, GetSlotsProductIdsResponse } from '../../shared-types';
export interface GetProductsSummaryResponse {
products: ProductSummary[];
count: number;
}
const getAllProductsSummaryApi = async (): Promise<GetProductsSummaryResponse> => {
const response = await axios.get('/cm/products/summary');
return response.data;
};
export const useGetAllProductsSummary = () => {
return useQuery({
queryKey: ['products-summary'],
// queryFn: getAllProductsSummaryApi,
queryFn: async () => {
const response = await axios.get('/cm/products/summary');
return response.data;
}
});
};
const getSlotsProductIdsApi = async (payload: GetSlotsProductIdsPayload): Promise<GetSlotsProductIdsResponse> => {
const response = await axios.post('/av/products/slots/product-ids', payload);
return response.data;
};
export const useGetSlotsProductIds = (slotIds: number[]) => {
return useQuery({
queryKey: ['slots-product-ids', slotIds],
queryFn: () => getSlotsProductIdsApi({ slotIds }),
enabled: slotIds.length > 0,
});
};