import { useCallback } from 'react'
import NProgress from 'nprogress'

/**
 * Hook pour contrôler manuellement la barre de progression NProgress
 * Utile pour les actions asynchrones comme les soumissions de formulaires,
 * les requêtes API, etc.
 */
export function useProgress() {
  const start = useCallback(() => {
    NProgress.start()
  }, [])

  const done = useCallback(() => {
    NProgress.done()
  }, [])

  const set = useCallback((progress: number) => {
    NProgress.set(progress)
  }, [])

  const inc = useCallback(() => {
    NProgress.inc()
  }, [])

  return {
    start,
    done,
    set,
    inc
  }
}
