hooks/useClienteDetail.ts
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,
});
}
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,
});
}