'use client' import { error } from '@/config/swal'; import { createMasterUserRole, getMasterUserRoleById } from '@/service/master-user-role'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button, Card, Input, Textarea } from '@nextui-org/react'; import Link from 'next/link'; import { usePathname, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { useForm } from 'react-hook-form'; import Swal from 'sweetalert2'; import withReactContent from 'sweetalert2-react-content'; import { z } from 'zod'; const masterUserSchema = z.object({ code: z.string().min(1, { message: "Required" }), description: z.string().min(1, { message: "Required" }), levelNumber: z.string().min(1, { message: "Required" }), name: z.string().min(1, { message: "Required" }), }); export default function FormDetailMasterUserRole() { const router = useRouter(); const MySwal = withReactContent(Swal); const [userRole, setUserRole] = useState(); const [code, setCode] = useState(); const [description, setDescription] = useState(); const [levelNumber, setLevelNumber] = useState(1); const [name, setName] = useState(); const pathname = usePathname(); const splitPathname = pathname.split('/'); const id = splitPathname[splitPathname.length - 1]; const formOptions = { resolver: zodResolver(masterUserSchema) }; type MicroIssueSchema = z.infer; const { register, control, handleSubmit, setValue, formState: { errors }, } = useForm(formOptions); useEffect(() => { async function initState() { const res = await getMasterUserRoleById(id); setUserRole(res.data?.data); setCode(res.data?.data?.code) setName(res.data.data?.name) setDescription(res.data.data?.description) setLevelNumber(res.data.data?.level_number) console.log("Data MasterUser", userRole); } initState(); }, []); async function save(data: any) { const formData = { code: code, description: description, level_number: levelNumber, name: name, }; console.log("Form MasterUser:", formData); const response = await createMasterUserRole(formData); if (response?.error) { error(response.message); return false; } successSubmit("/admin/master-role"); }; function successSubmit(redirect: any) { MySwal.fire({ title: "Sukses", icon: "success", confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then((result) => { if (result.isConfirmed) { router.push(redirect); } }); } async function onSubmit(data: any) { MySwal.fire({ title: "Simpan Data", text: "", icon: "warning", showCancelButton: true, cancelButtonColor: "#d33", confirmButtonColor: "#3085d6", confirmButtonText: "Simpan", }).then((result) => { if (result.isConfirmed) { save(data); } }); } return (
setCode(e.target.value)} /> {errors.code?.message}
setName(e.target.value)} /> {errors.name?.message}