"use client"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { z } from "zod"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { useRouter } from "@/i18n/routing"; import { getUserRoles, postCategory, postDataFAQ, } from "@/service/settings/settings"; import { useState } from "react"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { Textarea } from "@/components/ui/textarea"; import { close, error, loading } from "@/config/swal"; import { useToast } from "@/components/ui/use-toast"; import { stringify } from "querystring"; const FormSchema = z.object({ answer: z.string({ required_error: "Required", }), question: z.string({ required_error: "Required", }), publishTo: z.string({ required_error: "Required", }), // publishTo: z.array(z.string()).refine((value) => value.some((item) => item), { // message: "Required", // }), }); const publishToList = [ { id: "mabes", name: "Nasional", }, { id: "polda", name: "Polda", }, { id: "satker", name: "Satker", }, { id: "internasional", name: "Internasional", }, ]; export default function CreateSpvFAQModal() { const router = useRouter(); const { toast } = useToast(); const [isOpen, setIsOpen] = useState(false); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { publishTo: "wilayah" }, }); const target = form.watch("publishTo"); const isAllTargetChecked = target && publishToList.every((item) => target.includes(item.id) ); const onSubmit = async (data: z.infer) => { const request = { question: data.question, answer: data.answer, isInternational: data.publishTo === "wilayah" ? false : true, isActive: true, }; const response = await postDataFAQ(request); close(); if (response?.error) { toast({ title: stringify(response.message), variant: "destructive" }); return false; } toast({ title: "Succes", description: "FAQ berhasil dibuat", }); router.push("/supervisor/faq?dataChange=true"); setIsOpen(false); }; return ( Tambah FAQ
( Wilayah Publish Wilayah Internasional )} /> ( Pertanyaan