From a7e2e865de65c4bc25c25824447eecfb084b4ff6 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Wed, 21 Jan 2026 03:27:48 +0100 Subject: [PATCH] added template media set endpoint --- .../product/settingsTab/TemplateConfigure.jsx | 6 +- .../product/settingsTab/UploadModal.jsx | 93 +++++++++---------- src/services/services.js | 8 ++ 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/src/component/product/settingsTab/TemplateConfigure.jsx b/src/component/product/settingsTab/TemplateConfigure.jsx index a02afaa..45934b0 100644 --- a/src/component/product/settingsTab/TemplateConfigure.jsx +++ b/src/component/product/settingsTab/TemplateConfigure.jsx @@ -9,6 +9,8 @@ import UploadModal from './UploadModal'; const TemplateConfigure = ({productData}) => { + const [selectedSectionDetails, setSelectedSectionDetails] = useState({}) + // /panel/myproduct/template-config const queryClient = useQueryClient() @@ -96,7 +98,7 @@ const TemplateConfigure = ({productData}) => { }}>
{/* [Change Image] */} - + {/* */}
{item?.name}
@@ -121,7 +123,7 @@ const TemplateConfigure = ({productData}) => { }
- + } diff --git a/src/component/product/settingsTab/UploadModal.jsx b/src/component/product/settingsTab/UploadModal.jsx index 5d1bbff..d429ca8 100644 --- a/src/component/product/settingsTab/UploadModal.jsx +++ b/src/component/product/settingsTab/UploadModal.jsx @@ -2,21 +2,24 @@ 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, getTemplateConfig, uploadFile} from '../../../services/services'; +import {getMediaFileList, templateMediaSet} from '../../../services/services'; -export default function UploadModal() { +export default function UploadModal({productId, selectedSectionDetails}) { - const [selectedFiles, setSelectedFiles] = useState([]) + const queryClient = useQueryClient() + + const [selectedFile, setSelectedFile] = useState('') - const handleSelectedFiles = (file_uid) => { - if(selectedFiles.length && selectedFiles.includes(file_uid)){ - let indexOfItem = selectedFiles.indexOf(file_uid) - let oldFiles = [...selectedFiles] - oldFiles.splice(indexOfItem, 1) - setSelectedFiles(oldFiles) - }else{ - setSelectedFiles(prev => [...prev, file_uid]) - } + 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) @@ -37,33 +40,29 @@ export default function UploadModal() { modal && modal.hide(); }; - const uploadFileMutation = useMutation({ + const changeTemplateMediaSet = useMutation({ mutationFn: (fields) => { - if(!fields.file){ + if(!fields.file_uid){ throw({message: 'Please select a file first!'}) } - // return uploadFile(fields) - // remember to close the modal - dismissModal() - setTimeout(()=>{ - uploadFileMutation.reset() - }, 3000) - }, + return templateMediaSet(fields) + }, onSuccess: (res) => { // console.log('res', res.data) - // if(res.data.resultCode != '0' || !res?.data?.pending_uid){ - // throw({message: res?.data?.resultDescription}) - // } - // setSelectedFile({id: '', img: ''}) - // queryClient.refetchQueries({ - // queryKey: [...queryKeys.my_files], - // type: 'active', - // exact: true, - // }) + 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(()=>{ - uploadFileMutation.reset() + changeTemplateMediaSet.reset() }, 3000) } }) @@ -72,9 +71,12 @@ export default function UploadModal() { let reqData = { token: localStorage.getItem("token"), // USER TOKEN member_uid: localStorage.getItem("uid"), // USER UID - // file: selectedFile?.img + product_id: productId, + file_uid: selectedFile, + image_id: selectedSectionDetails?.id }; - uploadFileMutation.mutate(reqData) + // console.log('reqData', reqData) + changeTemplateMediaSet.mutate(reqData) } const {data, isFetching, isError, error} = useQuery({ @@ -121,9 +123,9 @@ export default function UploadModal() { {mediaFileList?.file_list?.map(item => { const file_url = (mediaFileList?.media_server + "/" + item?.file_group + "/" + item?.file_uid + "/" + item.filename).toLowerCase(); return( -
handleSelectedFiles(item?.file_uid)} className={`p-3 text-center col-4`} style={{cursor: 'pointer'}}> -
- file-image +
handleSelectedFile(item?.file_uid)} className={`p-3 text-center col-4`} style={{cursor: 'pointer'}}> +
+ file-image
) @@ -135,33 +137,26 @@ export default function UploadModal() { }
} - {/*
*/} - {/* {mutation.error && + {changeTemplateMediaSet.error && <>
-

{mutation.error.message}

+

{changeTemplateMediaSet.error.message}

} - {mutation.isSuccess && + {changeTemplateMediaSet.isSuccess && <>

{'subscription is successful'}

- } */} - - {/* {requestStatus.message && ( -
-

{requestStatus.message}

-
- )} */} + }
- {selectedFiles.length > 0 && - + {selectedFile && + }
diff --git a/src/services/services.js b/src/services/services.js index 336e227..65d9309 100644 --- a/src/services/services.js +++ b/src/services/services.js @@ -298,6 +298,14 @@ export const uploadFile = (reqData) => { return postAuxEnd(`/upload/webfiles`, postData, true) } +// FUNCTION TO CHANGE TEMPLATE MEDIA SET +export const templateMediaSet = (reqData) => { + let postData = { + ...reqData, + } + return postAuxEnd(`/panel/myproduct/template-media-set`, postData, false) +} + export const getReportsTopicsList = (reqData) => { let postData = { ...reqData,