import { ChevronDownIcon } from "@chakra-ui/icons"; import React, { useEffect, useState } from "react"; import { Badge, Button, FormControl, FormLabel, Menu, MenuButton, MenuItem, MenuList, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, FormErrorMessage, Text, Textarea, Box, } from "@chakra-ui/react"; import { useGetIOprepopulateDataQuery, useUpdateCancleStatusMutation, useUpdateCancleStatusToMutation, useUpdateStatusIoMutation, } from "../../../../Services/io.service"; import { useParams } from "react-router-dom"; const UpdateIOStatus = ({ isOpen, onClose, status }) => { const params = useParams(); const id = params?.id; const [selectedItem, setSelectedItem] = useState(); const [isLoadingg, setIsLoading] = useState(false); const [error, setError] = useState(""); const [selectedStatusId, setSelectedStatusId] = useState(""); const { data } = useGetIOprepopulateDataQuery(); const [updateStatusIo] = useUpdateStatusIoMutation(); const [updateCancleStatus] = useUpdateCancleStatusToMutation(); const [message, setMessage] = useState(null); const [messageError, setMessageError] = useState(null); // useEffect(() => { // setSelectedStatusId(status?.[0]?.id); // }, [status]); const handleMenuItemClick = (item, id) => { setSelectedItem(item); setSelectedStatusId(id); }; const handleSubmit = async (data) => { if (!selectedStatusId) { setError("Please select status"); return; } if (!message) { return setMessageError("message is required"); } setError(""); setIsLoading(true); try { let res; // If selectedItem is 'Cancelled', make the updateCancelStatus API call if (selectedItem === import.meta.env.VITE_STATUS_CANCELLED) { res = await updateCancleStatus({ id: id, data: { comments: message }, }); } // Otherwise, make the updateStatusIo API call else { res = await updateStatusIo({ data: { ioStatus_xid: selectedStatusId, }, id, }); } console.log("API Response:", res); setIsLoading(false); handleClose(); } catch (error) { setIsLoading(false); } }; const handleClose = () => { setSelectedItem(null); setSelectedStatusId(null); setMessage(null); setMessageError(null); onClose(); setError(""); }; return ( Update IO Status Transaction Status } fontSize={"sm"} fontWeight={500} w={"100%"} textAlign={"left"} > {selectedItem ? ( {selectedItem} ) : ( "Select Item" )} {status?.length > 0 ? ( {status?.map(({ id, statusAdmin }) => ( handleMenuItemClick(statusAdmin, id)} > {statusAdmin} ))} ) : ( "" )} {error} {selectedItem === import.meta.env.VITE_STATUS_CANCELLED && ( Message