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 odooApi from '@/core/api/odooApi' 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 ID Pesanan Anda di kotak di bawah ini dan tekan tombol "Lacak". ID ini diberikan kepada Anda pada tanda terima dan dalam email konfirmasi yang seharusnya Anda terima.
{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