expria-frontend/src/features/simulations/hooks/useIdees.ts
Hermann_Kitio 67eb3411c5 feat(simulations): getIdees API + hook useIdees (G5)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 03:09:01 +03:00

33 lines
1.1 KiB
TypeScript

/**
* Hook — suggestions d'idées DeepSeek pour prolonger une rédaction en cours.
*
* Tâche G5 : mutation sur POST /sujets/idees. Retourne les idées, l'état
* de chargement, l'erreur API et un `reset()` pour vider le cache de la
* mutation (appelé à la fermeture du modal côté composant).
*
* Règle H : aucune logique métier — la garde `hasAccess(plan, 'tips')`
* est appliquée dans SimulationForm (UX), jamais ici.
*/
import { useMutation } from '@tanstack/react-query'
import { getIdees } from '@/entities/report/api'
import type { ApiError } from '@/shared/types/api'
interface FetchIdeesVariables {
consigne: string
contenu: string
}
export function useIdees() {
const mutation = useMutation<string[], ApiError, FetchIdeesVariables>({
mutationFn: ({ consigne, contenu }) => getIdees(consigne, contenu),
})
return {
idees: mutation.data ?? null,
isLoading: mutation.isPending,
error: mutation.error as ApiError | null,
fetchIdees: (variables: FetchIdeesVariables) => mutation.mutate(variables),
reset: mutation.reset,
}
}