template endpoint added

This commit was merged in pull request #79.
This commit is contained in:
victorAnumudu
2025-09-01 21:01:47 +01:00
parent 72dc343d01
commit 67d26f6ab0
7 changed files with 483 additions and 142 deletions
@@ -1,11 +1,13 @@
import React, {memo} from 'react'
import getImage from "../../../utils/getImage";
import { useQuery } from '@tanstack/react-query';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import queryKeys from '../../../services/queryKeys';
import { getProductTemplateData } from '../../../services/services';
import { getProductTemplateData, activateTemplate } from '../../../services/services';
const SiteTemplateSelector = memo(({name='Full Name', data, productData}) =>{
const queryClient = useQueryClient()
const {data:templateData, isFetching, isError, error} = useQuery({
queryKey: queryKeys.productTemplateData,
queryFn: () => {
@@ -20,10 +22,42 @@ const SiteTemplateSelector = memo(({name='Full Name', data, productData}) =>{
})
const templateResponse = templateData?.data
const currentTemUID = templateResponse?.current_template_uid
const templates = templateResponse?.templates
// console.log('data Template', templates)
// console.log('data Template', templateResponse)
// console.log("Page data == ", data)
const handleActivateTemplate = useMutation({
mutationFn: (fields) => {
return activateTemplate(fields)
},
onSuccess: (res) => {
if(res?.data?.resultCode != '0'){
throw new Error(res.data.resultDescription)
}
queryClient.refetchQueries({ // refetches productProvision API call
queryKey: [...queryKeys.settingsData],
})
},
onSettled: () => {
setTimeout(()=>{
handleActivateTemplate.reset()
}, 3000)
}
})
const handleSubmit = (tem_uid) => {
const reqData = {
token: localStorage.getItem('token'), // USER TOKEN
uid: localStorage.getItem('uid'), // USER UID
product_id: productData?.product_id,
template_uid: tem_uid
}
// console.log(reqData)
handleActivateTemplate.mutate(reqData)
}
return (
<div className="page-account-form">
<div className="p-0">
@@ -56,7 +90,11 @@ const SiteTemplateSelector = memo(({name='Full Name', data, productData}) =>{
<img src={getImage('file-icon/svg.png')} alt={template.title} />
</div>
<h4 className="mb-0">{template.title}</h4>
<a href="#" className="btn btn-light">Activate</a>
{currentTemUID == template.template_uid ?
<button className="btn btn-light" disabled={true}>Active</button>
:
<button onClick={()=>handleSubmit(template.template_uid)} className="btn btn-primary">Activate</button>
}
</div>
</div>
</div>
@@ -79,6 +117,22 @@ const SiteTemplateSelector = memo(({name='Full Name', data, productData}) =>{
</div>
))} */}
</>
<div className="col-12">
<>
{handleActivateTemplate.isPending ?
<p className={'text-center '}>loading...</p>
:
handleActivateTemplate.isError ?
<p className={'text-center text-danger'}>{handleActivateTemplate.error.message}</p>
:
handleActivateTemplate.isSuccess?
<p className={'text-center text-success'}>Templated activated successfully</p>
:
null
}
</>
</div>
</div>
}
</div>