import React, { useState, useEffect } from "react"; import { Modal, ModalOverlay, ModalContent, ModalHeader, ModalFooter, ModalBody, ModalCloseButton, useDisclosure, Button, Box, Text, Image, HStack, useToast, } from "@chakra-ui/react"; import { AddIcon, DragHandleIcon } from "@chakra-ui/icons"; import DataTable from "../../../Components/DataTable/DataTable"; import { useSetDisplayOrderMutation } from "../../../Services/io.service"; import ToastBox from "../../../Components/ToastBox"; const SetDisplayOrder = ({ data }) => { const toast = useToast() const { isOpen, onOpen, onClose } = useDisclosure(); const [ isLoading, setIsLoading ] = useState(false) const tableHeadRow = ["", "Title", "Icon"]; const [extractedArray, setExtractedArray] = useState([]); const [ displayOrder, setDisplayOrder ] = useState(null) const [ resetDisplayOrder ] = useSetDisplayOrderMutation() // Update state when `data` prop changes useEffect(() => { if (data) { const formattedData = data.map((item, index) => ({ id: item?.id, displayOrder: index + 1, // Add displayOrder property "": ( ), Title: ( {item?.meritsHeader} ), Icon: item?.icon?.iconFilePath && ( ), })); setExtractedArray(formattedData); } }, [data]); // Log the updated order in the desired format whenever `extractedArray` changes useEffect(() => { const displayOrderArray = extractedArray.map((item, index) => ({ id: item.id, displayOrder: index + 1, })); setDisplayOrder(displayOrderArray) }, [extractedArray]); const handleSetOrder = async () => { setIsLoading(true) const data = { displayOrder:displayOrder } try { const res = await resetDisplayOrder({data}) console.log(res?.data?.statusCode); if (res?.data?.statusCode === 200) { toast({ render: () => , }); onClose() } setIsLoading(false) } catch (error) { console.log(res); setIsLoading(false) } } return ( <> Set Display Order ); }; export default SetDisplayOrder;