// imports import { useQuery } from "@tanstack/vue-query"; import { API_ENDPOINTS, QUERY_KEYS } from "~/constants"; // types export type GetAllTicketsResponse = ApiPaginated; export type GetAllTicketsFilters = { sort: string | undefined; filter: string | undefined; page: string | string[]; }; const useGetAllTickets = (params: Ref) => { // state const { $axios: axios } = useNuxtApp(); // methods const handleGetAllTickets = async (params: GetAllTicketsFilters) => { const { data } = await axios.get( API_ENDPOINTS.tickets.get_all, { params: { sort: params.sort, filter: params.filter, offset: Number(params.page) * 10 - 10, limit: 10, }, } ); return data; }; return useQuery({ queryKey: [QUERY_KEYS.tickets, params], queryFn: () => handleGetAllTickets(params.value), }); }; export default useGetAllTickets;