import React, { useState, useEffect } from "react"; import { Modal, ModalOverlay, ModalContent, ModalHeader, ModalFooter, ModalBody, ModalCloseButton, useDisclosure, Button, Box, Text, Image, HStack, useToast, Badge, Link, } from "@chakra-ui/react"; import { AddIcon, DragHandleIcon, ExternalLinkIcon } from "@chakra-ui/icons"; import DataTable from "../../../Components/DataTable/DataTable"; import { useSetDisplayOrderIOArtifactsVideoMutation } from "../../../Services/io.service"; import ToastBox from "../../../Components/ToastBox"; const SetDisplayOrderIOArtifactsVideo = ({ data, }) => { const toast = useToast(); const { isOpen, onOpen, onClose } = useDisclosure(); const [isLoading, setIsLoading] = useState(false); const tableHeadRow = ["", "File Name", "Video streaming URL"]; const [extractedArray, setExtractedArray] = useState([]); const [displayOrder, setDisplayOrder] = useState(null); const [resetDisplayOrder] = useSetDisplayOrderIOArtifactsVideoMutation(); // Update state when `data` prop changes useEffect(() => { if (data) { const formattedData = data.map((item, index) => ({ id: item?.id, displayOrder: index + 1, // Add displayOrder property "": ( ), "File Name": ( {item.artifactName} ), "Video streaming URL": ( View ), })); 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 SetDisplayOrderIOArtifactsVideo;