import { yupResolver } from '@hookform/resolvers/yup' import React, { useEffect, useState } from 'react' import { useForm } from 'react-hook-form' import * as Yup from 'yup' import Manifest from '@/lib/treckingAwb/component/Manifest' import { trackingOrder } from '../api/trackingOrder' import { useQuery } from 'react-query' import { Spinner } from '@chakra-ui/react'; import { Search } from 'lucide-react'; import whatsappUrl from '@/core/utils/whatsappUrl'; const TrackingOrder = () => { const [idAWB, setIdAWB] = useState(null) const [inputQuery, setInputQuery] = useState(null) const [buttonClick, setButtonClick] = useState(false) const [apiError, setApiError] = useState(null) // State to store API error message const closePopup = () => { setIdAWB(null) setButtonClick(false) setInputQuery(null) setApiError(null) // Reset error message on close } const { register, handleSubmit, formState: { errors }, control, reset } = useForm({ resolver: yupResolver(validationSchema), defaultValues }) const query = { email: inputQuery?.email, so: inputQuery?.id } const { data: tracking, isLoading, isError, error } = useQuery( ['tracking', query], () => trackingOrder({ query: query }), { enabled: !!query.email && !!query.so, onSuccess: (data) => { if (buttonClick) { if (data?.code === 403 || data?.code === 400 || data?.code === 404) { setApiError(data?.description); } else if (data?.pickings?.length > 0) { setIdAWB(data.pickings[0]?.id); } else { setApiError('No pickings data available'); } setButtonClick(false); setInputQuery(null); } }, } ); const onSubmitHandler = async (values) => { setInputQuery(values) setButtonClick(true) } return (

Tracking Order

{`Untuk melacak pesanan Anda, masukkan Nomor Transaksi di kotak bawah ini dan masukkan Email login anda lalu tekan tombol "Lacak". Nomor Transaksi ini dapat Anda lihat dalam menu `} Daftar Transaksi {`. Jika mengalami kesulitan `} hubungi kami {`.`}
{errors.id?.message}
{errors.email?.message}
{/* Display the API error message */} {apiError &&
{apiError}
}
) } const validationSchema = Yup.object().shape({ email: Yup.string().email('Format harus seperti contoh@email.com').required('Harus di-isi'), id: Yup.string().required('Harus di-isi'), }) const defaultValues = { email: '', id: '' } export default TrackingOrder