Compare commits

...

2 Commits

Author SHA1 Message Date
victorAnumudu b7aaff7adc product page reload fixed 2025-07-15 20:04:37 +01:00
ameye d606b5682c Merge branch 'product-url-refresh' of MERMS/MermsPanelReactJS into master 2025-07-15 14:21:37 +00:00
5 changed files with 19 additions and 29 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ export default function Products() {
uid: localStorage.getItem('uid') // USER UID uid: localStorage.getItem('uid') // USER UID
} }
const {data, isFetching, isError, error} = useQuery({ const {data, isFetching, isError, error} = useQuery({
queryKey: queryKeys.product, queryKey: queryKeys.products,
queryFn: () => productsData(reqData) queryFn: () => productsData(reqData)
}) })
const products = data?.data?.products_data // PRODUCTS DATA const products = data?.data?.products_data // PRODUCTS DATA
+11 -23
View File
@@ -1,5 +1,4 @@
import {useEffect} from "react"; import { useQuery } from '@tanstack/react-query'
import { useMutation, useQuery } from '@tanstack/react-query'
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS"; import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
// import getImage from "../../utils/getImage"; // import getImage from "../../utils/getImage";
import ProductStart from "./ProductStart"; import ProductStart from "./ProductStart";
@@ -8,6 +7,7 @@ import {MyProductData} from "../../services/services";
import ProductActive from "./ProductActive"; import ProductActive from "./ProductActive";
import ProductProvision from "./ProductProvision"; import ProductProvision from "./ProductProvision";
import {productConst} from "../../constants/products"; import {productConst} from "../../constants/products";
import queryKeys from "../../services/queryKeys";
export default function ProductFactory(){ export default function ProductFactory(){
const location = useLocation(); const location = useLocation();
@@ -16,30 +16,18 @@ export default function ProductFactory(){
// Split the pathname by '/' and get the last element // Split the pathname by '/' and get the last element
const productID = pathname.split('/').pop(); const productID = pathname.split('/').pop();
const getProductData = useMutation({
mutationFn: (reqData) => {
return MyProductData(reqData)
},
onError: (error) => {
console.log(error)
},
onSuccess: (res) => {
if(res?.data?.resultCode != '0'){
throw({message: 'Something went wrong'})
}
}
})
useEffect(()=>{
let reqData = { let reqData = {
product_id : productID, product_id : productID,
token: localStorage.getItem('token'), // USER TOKEN token: localStorage.getItem('token'), // USER TOKEN
uid: localStorage.getItem('uid') // USER UID uid: localStorage.getItem('uid') // USER UID
} }
getProductData.mutate(reqData) const {data, isFetching, isError, error} = useQuery({
},[]) queryKey: queryKeys.product_page,
queryFn: () => MyProductData(reqData),
staleTime: 0
})
const myproduct_data = getProductData?.data?.data?.myproduct?.myproudct // PRODUCT DETAILS const myproduct_data = data?.data?.myproduct?.myproudct // PRODUCT DETAILS
const product_name = myproduct_data?.product_name; const product_name = myproduct_data?.product_name;
const product_status = myproduct_data?.status; const product_status = myproduct_data?.status;
@@ -47,7 +35,7 @@ export default function ProductFactory(){
<> <>
<BreadcrumbComBS title={product_name} paths={['Dashboard', 'Product']} /> <BreadcrumbComBS title={product_name} paths={['Dashboard', 'Product']} />
<div className="row"> <div className="row">
{getProductData?.isPending ? {isFetching ?
<> <>
<div className="row"> <div className="row">
<div className="col-12"> <div className="col-12">
@@ -55,10 +43,10 @@ export default function ProductFactory(){
</div> </div>
</div> </div>
</> </>
: getProductData?.error ? : isError ?
<div className="row"> <div className="row">
<div className="col-12"> <div className="col-12">
<p className='text-danger'>{getProductData?.error?.message}</p> <p className='text-danger'>{error?.message}</p>
</div> </div>
</div> </div>
: :
+2 -2
View File
@@ -110,9 +110,9 @@ export default function ProductProvision(props){
<div className="card card-statistics "> <div className="card card-statistics ">
<h4 className="card-title" style={{padding:'10px'}}>Started creating your selection</h4> <h4 className="card-title" style={{padding:'10px'}}>Started creating your selection</h4>
<img className="card-img-top" src={getImage('widget/working.jpg')} alt="Card image cap" /> <img className="card-img-top" src={getImage('widget/working.jpg')} alt="Card image cap" />
<div className="card-body"> {/* <div className="card-body">
<div className="" dangerouslySetInnerHTML={{__html: productDescription}}/> <div className="" dangerouslySetInnerHTML={{__html: productDescription}}/>
</div> </div> */}
</div> </div>
</div> </div>
+1
View File
@@ -30,6 +30,7 @@ export default function ProductStart(props){
// // exact: true, // // exact: true,
// }) // })
queryClient.invalidateQueries({ queryKey: [...queryKeys.product_url] }) queryClient.invalidateQueries({ queryKey: [...queryKeys.product_url] })
queryClient.invalidateQueries({ queryKey: [...queryKeys.product_page] })
} }
const mutation = useMutation({ const mutation = useMutation({
+3 -2
View File
@@ -1,12 +1,13 @@
const queryKeys = { const queryKeys = {
user_details: ['user_details'], user_details: ['user_details'],
product_url: ['product_url'], product_url: ['product_url'],
product: ['product-data'], products: ['product-data'],
myproduct_provision: ['myproduct_provision'],
product_page: ['product_page'],
dashboard: ['dashboard'], dashboard: ['dashboard'],
topBar: ['top-bar'], topBar: ['top-bar'],
recentAction: ['recent-action'], recentAction: ['recent-action'],
myproduct_provision: ['myproduct_provision'],
calendar_events: ['calendar_events'], calendar_events: ['calendar_events'],
contacts: ['contacts'] contacts: ['contacts']
} }