42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import { FeedbackFormValues } from "@/shared/schemas/feedback";
|
|
import feedbackService from "@/shared/services/feedback";
|
|
import { useCallback, useState } from "react";
|
|
import { toast } from "sonner";
|
|
|
|
type UseFeedBackFormOptions = {
|
|
onClose: () => void;
|
|
};
|
|
|
|
export function useFeedBackForm(opts: UseFeedBackFormOptions) {
|
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
|
|
const handleSubmitFeedback = useCallback(
|
|
|
|
async (data: FeedbackFormValues) => {
|
|
console.log('submit', data);
|
|
try {
|
|
setIsSubmitting(true);
|
|
await feedbackService.sendFeedback(data);
|
|
toast.success("Feedback Anda berhasil dikirim");
|
|
opts.onClose();
|
|
} catch (error) {
|
|
toast.error("Gagal mengirim feedback");
|
|
console.log("gagallll", error);
|
|
} finally {
|
|
setIsSubmitting(false);
|
|
}
|
|
},
|
|
[opts]
|
|
);
|
|
|
|
const resetForm = useCallback(() => {
|
|
opts.onClose();
|
|
}, [opts]);
|
|
|
|
return {
|
|
isSubmitting,
|
|
handleSubmitFeedback,
|
|
resetForm,
|
|
};
|
|
}
|