hooks/useClienteDetail.ts

hook·mobile·0.8 KB · 21 lignes· Voir l'itinéraire

Annotation

Ce hook, `useClienteDetail`, est responsable de la récupération des détails d'un client spécifique dans l'application mobile. Il expose la fonction `useClienteDetail` qui utilise `react-query` pour gérer la mise en cache et la récupération des données depuis une API. Ce hook est activé uniquement si un token d'authentification est présent, si l'utilisateur a le rôle "TENANT_ADMIN", et si un identifiant de client est fourni, le rendant ainsi utilisable pour afficher des informations détaillées sur un client dans l'interface utilisateur.

1 export

useClienteDetail

Code source· typescript

import { useQuery } from "@tanstack/react-query";
import { apiGet } from "@/lib/api";
import { API_MOBILE } from "@/lib/constants";
import { useAuthStore } from "@/store/authStore";
import type { ClienteDetailResponse } from "@/types/api";

export function useClienteDetail(id: string | null) {
  const token = useAuthStore((s) => s.token);
  const role = useAuthStore((s) => s.user?.role);
  return useQuery({
    queryKey: ["vitrine-pro", "cliente-detail", id],
    queryFn: async () => {
      const { data, error } = await apiGet<ClienteDetailResponse>(API_MOBILE.VITRINE_CLIENTE_DETAIL(id!));
      if (error || !data) throw new Error(error ?? "Erreur chargement client");
      return data;
    },
    enabled: !!token && role === "TENANT_ADMIN" && !!id,
    staleTime: 30 * 1000,
  });
}