"use client";

import { keepPreviousData, useQuery } from "@tanstack/react-query";

import { listAdminCustomersApi } from "@/lib/api/customers.api";
import { queryKeys } from "@/lib/constants/query-keys";
import { AdminCustomersListParams } from "@/types/customers";

/**
 * Paginated customer list for the admin screen (server-mode
 * DataTable).
 *
 * `keepPreviousData` keeps the current page rendered while the next one loads,
 * so paging/searching doesn't flash the table back to skeletons.
 */
export function useAdminCustomers(params: AdminCustomersListParams) {
  return useQuery({
    queryKey: queryKeys.customers.adminList(params),
    queryFn: () => listAdminCustomersApi(params),
    placeholderData: keepPreviousData,
  });
}
