import React, { useEffect, useMemo, useRef } from 'react'; import { usePengajuanTempoStoreKontakPerson } from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore'; import useDevice from '@/core/hooks/useDevice'; const KontakPerusahaan = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const { formKontakPerson, errorsKontakPerson, validateKontakPerson, updateFormKontakPerson, } = usePengajuanTempoStoreKontakPerson(); const { isDesktop, isMobile } = useDevice(); const handleInputChange = (event) => { const { name, value } = event.target; updateFormKontakPerson(name, value); validateKontakPerson(); }; const isFormValid = useMemo( () => Object.keys(errorsKontakPerson).length === 0, [errorsKontakPerson] ); const direkturNameRef = useRef(null); const direkturMobileRef = useRef(null); const direkturEmailRef = useRef(null); const purchasingNameRef = useRef(null); const purchasingEmailRef = useRef(null); const purchasingMobileRef = useRef(null); const financeNameRef = useRef(null); const financeMobileRef = useRef(null); const financeEmailRef = useRef(null); useEffect(() => { const loadIndustries = async () => { if (!isFormValid) { const options = { behavior: 'smooth', block: 'center', }; if (errorsKontakPerson.direkturName && direkturNameRef.current) { direkturNameRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.direkturMobile && direkturMobileRef.current) { direkturMobileRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.direkturEmail && direkturEmailRef.current) { direkturEmailRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.purchasingName && purchasingNameRef.current) { purchasingNameRef.current.scrollIntoView(options); return; } if ( errorsKontakPerson.purchasingMobile && purchasingMobileRef.current ) { purchasingMobileRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.purchasingEmail && purchasingEmailRef.current) { purchasingEmailRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.financeName && financeNameRef.current) { financeNameRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.financeMobile && financeMobileRef.current) { financeMobileRef.current.scrollIntoView(options); return; } if (errorsKontakPerson.financeEmail && financeEmailRef.current) { financeEmailRef.current.scrollIntoView(options); return; } } }; loadIndustries(); }, [buttonSubmitClick, chekValid]); useEffect(() => { validateKontakPerson(); }, [buttonSubmitClick]); return ( <> {isDesktop && (