import React, { useRef, useState } from 'react' import { Modal } from "bootstrap"; import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; import queryKeys from '../../../services/queryKeys'; import {getMediaFileList, templateMediaSet} from '../../../services/services'; export default function UploadModal({productId, selectedSectionDetails}) { const queryClient = useQueryClient() const [selectedFile, setSelectedFile] = useState('') const handleSelectedFile = (file_uid) => { // if(selectedFile.length && selectedFile.includes(file_uid)){ // let indexOfItem = selectedFile.indexOf(file_uid) // let oldFiles = [...selectedFile] // oldFiles.splice(indexOfItem, 1) // setSelectedFile(oldFiles) // }else{ // setSelectedFile(prev => [...prev, file_uid]) // } setSelectedFile(file_uid) } const modalRef = useRef(null) const dismissModal = () => { const body = document.querySelector('body') body.removeAttribute('style') // body.classList.toggle('modal-open') const modalBackdrop = document.querySelectorAll('.modal-backdrop') modalBackdrop.forEach(item => { if (item) { item.remove(); } }) const modal = Modal.getInstance(modalRef.current); modal && modal.hide(); }; const changeTemplateMediaSet = useMutation({ mutationFn: (fields) => { if(!fields.file_uid){ throw({message: 'Please select a file first!'}) } return templateMediaSet(fields) }, onSuccess: (res) => { // console.log('res', res.data) if(res.data.resultCode != '0'){ throw({message: res?.data?.resultDescription}) } setSelectedFile('') dismissModal() // to close modal queryClient.refetchQueries({ queryKey: [...queryKeys.myTemplateConfig], // type: 'active', // exact: true, }) }, onSettled: () => { setTimeout(()=>{ changeTemplateMediaSet.reset() }, 3000) } }) const handleUpload = () => { let reqData = { token: localStorage.getItem("token"), // USER TOKEN uid: localStorage.getItem("uid"), // USER UID product_id: productId, file_uid: selectedFile, image_id: selectedSectionDetails?.id }; // console.log('reqData', reqData) changeTemplateMediaSet.mutate(reqData) } const {data, isFetching, isError, error} = useQuery({ queryKey: queryKeys.my_files, queryFn: () => { let reqData = { token: localStorage.getItem('token'), // USER TOKEN uid: localStorage.getItem('uid') // USER UID } return getMediaFileList(reqData) } }) const mediaFileList = data?.data // console.log('mediaFileList', mediaFileList) //file_list return ( <> {/* Vertical Center Modal */} {/* END of Vertical Center Modal */} ) }