Spaces:
Running
Running
// src/hooks/useFeedback.js | |
import { useState, useCallback } from 'react'; | |
import { saveFeedback } from '../services/api'; | |
import { useAuth } from './useAuth'; | |
export const useFeedback = () => { | |
const { authTokens } = useAuth(); | |
const [isSaving, setIsSaving] = useState(false); | |
const [saveError, setSaveError] = useState(null); | |
const [saveSuccess, setSaveSuccess] = useState(false); | |
const submitFeedback = useCallback(async (feedbackData) => { | |
setIsSaving(true); | |
setSaveError(null); | |
setSaveSuccess(false); | |
try { | |
await saveFeedback(feedbackData, authTokens.access); | |
setSaveSuccess(true); | |
} catch (err) { | |
setSaveError(err.message || 'Failed to save feedback'); | |
} finally { | |
setIsSaving(false); | |
} | |
}, [authTokens.access]); | |
const resetFeedbackState = useCallback(() => { | |
setSaveError(null); | |
setSaveSuccess(false); | |
}, []); | |
return { | |
isSaving, | |
saveError, | |
saveSuccess, | |
submitFeedback, | |
resetFeedbackState, | |
}; | |
}; |