Files
hossein-por-shop/frontend/composables/api/home/useHomeData.ts
T
marzban-dev 7cc89e899a Update types
2025-05-30 15:39:32 +03:30

61 lines
1.3 KiB
TypeScript

// imports
import { useQuery } from "@tanstack/vue-query";
import { API_ENDPOINTS, QUERY_KEYS } from "~/constants";
import type { GetArticleResponse } from "~/composables/api/blog/useGetArticle";
// types
export type GetHomeDataResponse = {
sliders: {
id: number;
link: string;
title: string;
description: string;
image: string | null;
video: string | null;
}[];
main_categories: Category[];
products: ProductListItem[];
difreance_section: {
image1: string;
image2: string;
title1: string;
title2: string;
description1: string;
description2: string;
link1: string;
link2: string;
};
show_case_slider: {
id: number;
title: string;
description: string;
link: string;
image1: string;
image2: string;
image3: string;
background_image: string;
}[];
};
const useHomeData = () => {
// state
const { $axios: axios } = useNuxtApp();
// methods
const handleHomeData = async () => {
const { data } = await axios.get<GetHomeDataResponse>(`${API_ENDPOINTS.home}`);
return data;
};
return useQuery({
queryKey: [QUERY_KEYS.home],
queryFn: () => handleHomeData(),
});
};
export default useHomeData;