Files
web-core/src/hooks/useSubmitState.ts
Beatrice Dellacà cbabf43584
All checks were successful
continuous-integration/drone/push Build is passing
update prettier
2026-02-23 14:23:46 +01:00

32 lines
851 B
TypeScript

import { useCallback, useState } from 'react';
export function useSubmitState<TStatus = string | null>(initialStatus: TStatus) {
const [isSubmitting, setIsSubmitting] = useState(false);
const [submitError, setSubmitError] = useState<string | null>(null);
const [status, setStatus] = useState<TStatus>(initialStatus);
const startSubmitting = useCallback(() => {
setIsSubmitting(true);
}, []);
const finishSubmitting = useCallback(() => {
setIsSubmitting(false);
}, []);
const clearFeedback = useCallback(() => {
setSubmitError(null);
setStatus(initialStatus);
}, [initialStatus]);
return {
isSubmitting,
submitError,
status,
startSubmitting,
finishSubmitting,
setSubmitError,
setStatus,
clearFeedback,
};
}