feat(simulations): getIdees API + hook useIdees (G5)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hermann_Kitio 2026-04-21 03:09:01 +03:00
parent 555dac17e2
commit 67eb3411c5
2 changed files with 48 additions and 0 deletions

View file

@ -0,0 +1,33 @@
/**
* 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,
}
}