Compare commits

...

2 Commits

Author SHA1 Message Date
victorAnumudu 4969ad1ae4 fixed dashboard payments endpoint 2025-09-01 16:08:26 +01:00
ameye 9e33578ef2 Merge branch 'payments-endpoint' of MERMS/MermsPanelReactJS into master 2025-09-01 14:34:42 +00:00
5 changed files with 33 additions and 13 deletions
+7 -10
View File
@@ -2,6 +2,7 @@ import React from 'react'
import { getDashPayments } from '../../services/services' import { getDashPayments } from '../../services/services'
import { useQuery } from '@tanstack/react-query' import { useQuery } from '@tanstack/react-query'
import queryKeys from '../../services/queryKeys' import queryKeys from '../../services/queryKeys'
import getDateFromDateString from '../../helpers/getDateFromDateString'
import getImage from '../../utils/getImage' import getImage from '../../utils/getImage'
export default function DashPayments() { export default function DashPayments() {
@@ -18,7 +19,7 @@ export default function DashPayments() {
} }
}) })
const payments = data?.data const payments = data?.data?.member_payments
// console.log('data', payments) // console.log('data', payments)
return ( return (
@@ -30,7 +31,7 @@ export default function DashPayments() {
<h4 className="card-title">Payments</h4> <h4 className="card-title">Payments</h4>
</div> </div>
</div> </div>
<div className="card-body scrollbar scroll_dark pt-0" style={{maxHeight: '350px'}}> <div className="overflow-y-auto card-body scrollbar scroll_dark pt-0" style={{maxHeight: '350px'}}>
<div className="datatable-wrapper table-responsive"> <div className="datatable-wrapper table-responsive">
{isFetching ? {isFetching ?
<> <>
@@ -62,17 +63,13 @@ export default function DashPayments() {
payments.map((item, index) => { payments.map((item, index) => {
return ( return (
<tr key={index}> <tr key={index}>
<td>{Number(item?.id).toString().padStart(6,'0')}</td> {/* <td>{Number(item?.id).toString().padStart(6,'0')}</td> */}
<td> <td>
<a className="mr-3" href={externalUrl} target='_blank'><b>{externalUrl}</b></a> - {item?.description} {getDateFromDateString(item?.added)}
</td> </td>
<td><span className={`badge ${statusColor}`}>{statusText}</span></td> <td>{item?.option_name}</td>
<td> <td className='text-right'>${item?.amount}</td>
<a className="mr-3" href={productUrl}>
<img src={getImage('arrow-next.png')} alt='next' />
</a>
</td>
</tr> </tr>
) )
}) })
+15 -1
View File
@@ -1,6 +1,6 @@
import React, { memo, useMemo, useState } from 'react' import React, { memo, useMemo, useState } from 'react'
import GeneralTab from './GeneralTab' import GeneralTab from './GeneralTab'
import { getSettingsData } from '../../../services/services'; import { getSettingsData, getMyProductConfig } from '../../../services/services';
import queryKeys from '../../../services/queryKeys'; import queryKeys from '../../../services/queryKeys';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
@@ -8,6 +8,20 @@ import { useQuery } from '@tanstack/react-query';
const Settings = memo(({productData}) => { const Settings = memo(({productData}) => {
const { userDetails: { uid }} = useSelector((state) => state?.userDetails); // GETS USER UID const { userDetails: { uid }} = useSelector((state) => state?.userDetails); // GETS USER UID
const {data:configData, isFetching:configIsFetching, configIsError, error:configError} = useQuery({
queryKey: queryKeys.myProductConfig,
queryFn: () => {
let reqData = {
token: localStorage.getItem('token'), // USER TOKEN
uid: localStorage.getItem('uid'), // USER UID
product_id: productData?.product_id
}
return getMyProductConfig(reqData)
}
})
const settingsConfig = configData?.data?.settings_items
// console.log('CONFIG DATA...', settingsConfig)
const dataFields ={ const dataFields ={
site_title: { name: 'Title', controls: 'TEXT', active: true }, site_title: { name: 'Title', controls: 'TEXT', active: true },
@@ -44,7 +44,7 @@ const SiteTemplateSelector = memo(({name='Full Name', data, productData}) =>{
: :
<div className="row"> <div className="row">
<> <>
{!templates.length ? {!templates?.length ?
<p>No data Found</p> <p>No data Found</p>
: :
templates.map(template => ( templates.map(template => (
+1
View File
@@ -7,6 +7,7 @@ const queryKeys = {
product_page: ['product_page'], product_page: ['product_page'],
recentAction: ['recent-action'], recentAction: ['recent-action'],
settingsData: ['settings_data'], settingsData: ['settings_data'],
myProductConfig: ['myproduct_config'],
productTemplateData: ['product_template_data'], productTemplateData: ['product_template_data'],
subscriptions: ['subscriptions'], subscriptions: ['subscriptions'],
+9 -1
View File
@@ -114,7 +114,7 @@ export const productsURL = (reqData) => {
return postAuxEnd(`/panel/account/products/url`, postData, false) return postAuxEnd(`/panel/account/products/url`, postData, false)
} }
// FUNCTION TO GET DASHBOARD PRODUCT URL DATA SECTION // FUNCTION TO GET DASHBOARD PAYMENTS
export const getDashPayments = (reqData) => { export const getDashPayments = (reqData) => {
let postData = { let postData = {
...reqData, ...reqData,
@@ -181,6 +181,14 @@ export const getSettingsData = (reqData) => {
return postAuxEnd(`/panel/myproduct/settings/values`, postData, false) return postAuxEnd(`/panel/myproduct/settings/values`, postData, false)
} }
// FUNCTION TO GET MY PRODUCT CONFIGURATION
export const getMyProductConfig = (reqData) => {
let postData = {
...reqData,
}
return postAuxEnd(`/panel/myproduct/configuration`, postData, false)
}
// FUNCTION TO GET SETTINGS DATA // FUNCTION TO GET SETTINGS DATA
export const getProductTemplateData = (reqData) => { export const getProductTemplateData = (reqData) => {
let postData = { let postData = {