"use client"; import { Reveal } from "@/components/landing-page/Reveal"; import { getCookiesDecrypt } from "@/lib/utils"; import { useRouter } from "next/navigation"; import React, { useEffect, useState } from "react"; import { yupResolver } from "@hookform/resolvers/yup"; import * as Yup from "yup"; import { useForm } from "react-hook-form"; import { getInfoProfile, getProfile, getSubjects } from "@/service/auth"; import { close, error, loading, successCallback } from "@/config/swal"; import { sendMessage } from "@/service/landing/landing"; import { useTranslations } from "next-intl"; const ContactForm = () => { const router = useRouter(); const userId = getCookiesDecrypt("uie"); const [subjects, setSubjects] = useState(); const [isOtherActive, setIsOtherActive] = useState(false); const t = useTranslations("LandingPage"); const form = document.getElementById("form") as HTMLFormElement; // Form Handling const validationSchema = Yup.object().shape({ name: Yup.string().required("Nama tidak boleh kosong"), email: Yup.string().required("Email tidak boleh kosong"), subjects: Yup.string().required("Subjek tidak boleh kosong"), message: Yup.string().required("Pesan tidak boleh kosong"), }); const formOptions = { resolver: yupResolver(validationSchema), }; const { register, handleSubmit, formState, setValue } = useForm(formOptions); const { errors } = formState; useEffect(() => { async function initState() { const response = await getInfoProfile(); const responseSubject = await getSubjects(); const profile = response?.data?.data; setSubjects(responseSubject?.data?.data); console.log(response); setValue("name", profile?.fullname); setValue("email", profile?.email); // setValue('name', profile?.fullname); // setValue('name', profile?.fullname); } initState(); }, []); async function save(data: any) { loading(); const finalData = { name: data.name, email: data.email, phone: data.phone, title: isOtherActive ? data.othersubject : data.subjects, message: data.message, }; const response = await sendMessage(finalData); if (response?.error) { error(response?.message); return false; } close(); successCallback("Terima kasih, pesan Anda telah terkirim"); // $("#form")[0].onreset(); if (form) { form.reset(); } } async function onSubmit(data: any) { if (userId == undefined) { router.push("/auth/login"); } else { save(data); } } const handleSubjects = (e: any) => { const id = e.target.value; if (id == "Lainnya") { setIsOtherActive(true); } else { setIsOtherActive(false); } }; return (
{/* Header */}
contact

{t("contactUs", { defaultValue: "Contact Us" })}

{t("writeMessage", { defaultValue: "Write Message" })}

{t("leaveMessage", { defaultValue: "Leave Message" })}

{/* Form */}
); }; export default ContactForm;