"use client"; import { Button } from "@/shared/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/shared/components/ui/form"; import { FeedbackFormValues, feedbackSchema } from "@/shared/schemas/feedback"; import { zodResolver } from "@hookform/resolvers/zod"; import React from "react"; import { useForm } from "react-hook-form"; import EmojiRatingFeedback from "./_components/emoji-rating"; import { Feedback } from "@/shared/types/feedback"; import SelectSector from "./_components/select-sector"; import SelectPurpose from "./_components/select-purpose"; import { RadioGroup, RadioGroupItem } from "@/shared/components/ui/radio-group"; import { Textarea } from "@/shared/components/ui/textarea"; import { Input } from "@/shared/components/ui/input"; type FeedbackFormProps = { defaultValues?: Partial; onSubmitAction: (data: FeedbackFormValues) => void; isSubmitting?: boolean; onCancelAction?: () => void; }; export function FeedbackForm({ defaultValues, onSubmitAction, isSubmitting, onCancelAction, }: FeedbackFormProps) { const form = useForm({ resolver: zodResolver(feedbackSchema), defaultValues: { id: defaultValues?.id || "", score: defaultValues?.score || null, tujuan_tercapai: defaultValues?.tujuan_tercapai || null, tujuan_ditemukan: defaultValues?.tujuan_ditemukan || null, tujuan: defaultValues?.tujuan || null, sektor: defaultValues?.sektor || null, email: defaultValues?.email || undefined, saran: defaultValues?.saran || null, source_url: "", source_access: "Floating button", notes: defaultValues?.notes || "", gender: defaultValues?.gender || undefined, datetime: new Date() || undefined, }, }); return ( <>

Bantu kami meingkatkan layanan dengan feedback Anda

{ console.log("submit", values); await onSubmitAction(values); // <- ini memanggil hook kamu form.reset(); }, (errors) => { console.log("[FeedbackForm] invalid submit", errors); } )} className="flex flex-col space-y-4" > ( Seberapa puaskah Anda dengan layanan yang kami berikan? * field.onChange(v)} showLabel size={44} name={field.name} /> )} /> ( Pilih sektor/grup berikut yang mewakili posisi Anda saat ini{" "} * field.onChange(v)} name={field.name} /> )} > ( Apakah tujuan utama Anda mengunjungi laman Satu Peta Provinsi Jawa Timur hari ini?* field.onChange(v)} name={field.name} /> )} > ( Apakah Anda berhasil menemukan data atau informasi yang Anda cari? * field.onChange(v === "true")} className="flex flex-col space-y-2" > Ya Tidak )} > ( Apakah informasi yang Anda cari mudah untuk didapatkan?{" "} * field.onChange(v === "true")} className="flex flex-col space-y-2" > Ya Tidak )} > ( Apa jenis kelamin Anda? * field.onChange(Number(v))} className="flex flex-col space-y-2" > Laki-laki Perempuan )} > ( Tuliskan saran atau kendala yang Anda alami dalam penggunaan Satu Peta Provinsi Jawa Timur agar kami dapat memberikan layanan lebih baik lagi