import odooApi from '@/core/api/odooApi'; import HookFormSelect from '@/core/components/elements/Select/HookFormSelect'; import cityApi from '@/lib/address/api/cityApi'; import stateApi from '@/lib/address/api/stateApi.js'; import { yupResolver } from '@hookform/resolvers/yup'; import React, { useEffect, useRef, useState } from 'react'; import ReCAPTCHA from 'react-google-recaptcha'; import { Controller, useForm } from 'react-hook-form'; import { toast } from 'react-hot-toast'; import * as Yup from 'yup'; import createLeadApi from '../api/createLeadApi'; import PageContent from '@/lib/content/components/PageContent'; import useAuth from '@/core/hooks/useAuth'; import { useRouter } from 'next/router'; const KunjunganSales = () => { const { register, handleSubmit, formState: { errors }, control, reset, watch, setValue, } = useForm({ resolver: yupResolver(validationSchema), defaultValues, }); const [cities, setCities] = useState([]); const [state, setState] = useState([]); const [companyTypes, setCompanyTypes] = useState([]); const router = useRouter(); const auth = useAuth(); const recaptchaRef = useRef(null); if (auth == false) { router.push(`/login?next=${encodeURIComponent('/kunjungan-sales')}`); } useEffect(() => { const loadState = async () => { let dataState = await stateApi({ tempo: false }); dataState = dataState.map((state) => ({ value: state.id, label: state.name, })); setState(dataState); }; loadState(); }, []); const watchState = watch('state'); useEffect(() => { if (auth == false) { return; } const loadCities = async () => { setValue('city', ''); let dataCities = await cityApi({ stateId: watchState }); dataCities = dataCities?.map((obj) => ({ value: obj.name, label: obj.name, })); setCities(dataCities); }; const loadCompanyTypes = async () => { const dataCompanyTypes = await odooApi( 'GET', '/api/v1/partner/company_type' ); setCompanyTypes( dataCompanyTypes?.map((obj) => ({ value: obj.name, label: obj.name })) ); }; loadCompanyTypes(); loadCities(); }, [auth, watchState, setValue]); const onSubmitHandler = async (values) => { const recaptchaValue = recaptchaRef.current.getValue(); if (!recaptchaValue) { toast.error('Recaptcha harus diisi'); return; } const data = { name: `Pengajuan Kunjungan Sales - ${values.company}`, email_from: values.email, phone: values.phone, description: [ `Nama Perusahaan: ${values.company}`, `No. Telepon: ${values.phone}`, `Alamat Lengkap: ${values.address}`, `Kota: ${values.city}`, `Unit Perusahaan: ${values.companyType}`, `No. Handphone: ${values.mobile}`, `Alamat Email: ${values.email}`, `Keterangan: ${values.description}`, ].join('\n'), }; const createLead = await createLeadApi({ data }); if (createLead) { toast.success('Berhasil mengirimkan formulir kunjungan sales'); reset(); recaptchaRef.current.reset(); } }; if (!auth) { return; } return (

Kunjungan Sales

Hubungi kami untuk mendapatkan kunjungan sales kami dan dapatkan berbagai kelebihannya dengan menjadi pelanggan korporat kami.
{errors.company?.message}
{errors.phone?.message}
{errors.address?.message}
} />
{errors.stateId?.message}
} />
{errors.city?.message}
( )} />
{errors.companyType?.message}
{errors.mobile?.message}
{errors.email?.message}