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 (
<>
}
size={"sm"}
fontSize={"xs"}
rounded={"sm"}
variant={"outline"}
colorScheme="forestGreen"
onClick={onOpen}
>
Set Display Order
Set Display Order
>
);
};
export default SetDisplayOrder;