Compare commits

..

1 Commits

Author SHA1 Message Date
victorAnumudu eb4d5315de fixed product data description 2025-07-06 20:47:17 +01:00
7 changed files with 46 additions and 73 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

+29 -53
View File
@@ -2,40 +2,27 @@
import React, { useEffect, useState } from "react";
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
import getImage from "../../utils/getImage";
import { useMutation, useQuery } from "@tanstack/react-query";
import { useQuery } from "@tanstack/react-query";
import { contactData } from "../../services/services";
import queryKeys from "../../services/queryKeys";
import getCustomTime from "../../utils/getCustomTime";
export default function Contacts(){
// const {data:contacts, isFetching, isError, error} = useQuery({
// queryKey: queryKeys.contacts,
// queryFn: () => contactData()
// })
const {data:contacts, isFetching, isError, error} = useQuery({
queryKey: queryKeys.contacts,
queryFn: () => contactData()
})
const contactsData = contacts?.data?.calendar_data?.contacts // LIST OF CONTACTS
const contactsCategory = contacts?.data?.calendar_data?.category // LIST OF CATEGORY
const [activeCategoryUID, setActiveCategoryUID] = useState('0') // HOLDS VALUE OF THE ACTIVE CATEGORY
const [activeContactUID, setActiveContactUID] = useState('')
const [activeDetail, setActiveDetail] = useState([])
const [activeContactUID, setActiveContactUID] = useState(null)
const [activeDetail, setActiveDetail] = useState(null)
const [filteredContactData, setFiltererdContactData] = useState([])
const getContactData = useMutation({
mutationFn: (reqData) => {
return contactData(reqData)
},
onError: (error) => {
console.log(error)
},
onSuccess: (res) => {
if(res?.data?.resultCode != '0'){
throw({message: 'Something went wrong'})
}
setFiltererdContactData(res?.data?.contacts)
}
})
const [filteredContactData, setFiltererdContactData] = useState(null)
const changeActiveUID = (uid) => {
setActiveContactUID(uid)
@@ -55,21 +42,10 @@ export default function Contacts(){
changeActiveUID(filteredConData[0]?.uid)
}
useEffect(()=>{
let reqData = {
token: localStorage.getItem('token'), // USER TOKEN
uid: localStorage.getItem('uid') // USER UID
}
getContactData.mutate(reqData)
},[])
const contactsData = getContactData?.data?.data?.contacts // LIST OF CONTACTS
const contactsCategory = getContactData?.data?.data?.category // LIST OF CATEGORY
return(
<>
<BreadcrumbComBS title='Contacts' paths={['Dashboard', 'Contacts']} />
{getContactData?.isPending ?
{isFetching ?
<>
<div className="row">
<div className="col-12">
@@ -77,10 +53,10 @@ export default function Contacts(){
</div>
</div>
</>
: getContactData?.error ?
: isError ?
<div className="row">
<div className="col-12">
<p className='text-danger'>{getContactData?.error?.message}</p>
<p className='text-danger'>{error.message}</p>
</div>
</div>
:
@@ -145,14 +121,14 @@ export default function Contacts(){
</div>
</li>
{contactsCategory && contactsCategory.map(item => (
<li key={item?.cid} className="py-2" onClick={()=>changeActiveCategoryUID(`A00000${item?.cid}`)} style={{cursor: 'pointer'}}>
<li key={item?.product_id} className="py-2" onClick={()=>changeActiveCategoryUID(item?.product_id)} style={{cursor: 'pointer'}}>
<div>
<span className="nav align-items-center">
<span>
<i className={`fa fa-circle-o pr-4 ${activeCategoryUID == `A00000${item?.cid}` ? 'text-primary' : 'text-warning'}`}></i>
<i className={`fa fa-circle-o pr-4 ${activeCategoryUID == item?.product_id ? 'text-primary' : 'text-warning'}`}></i>
</span>
<span>
<span>{item?.description}</span>
<span>{item?.title}</span>
</span>
</span>
</div>
@@ -201,10 +177,10 @@ export default function Contacts(){
</div>
</div>
<div className="mail-msg scrollbar scroll_dark">
{contactsData && filteredContactData?.map((contact, index)=> {
const isActive = (contact?.uid == activeContactUID) || (!activeContactUID && index == 0)
{contactsData && (filteredContactData || contactsData).map((contact, index)=> {
const isActive = (contact.uid == activeContactUID) || (!activeContactUID && index == 0)
return (
<div key={contact?.uid} onClick={()=>changeActiveUID(contact?.uid)} className={`mail-msg-item ${isActive && 'bg-light'}`}>
<div key={contact.uid} onClick={()=>changeActiveUID(contact.uid)} className={`mail-msg-item ${isActive && 'bg-light'}`}>
<a href="#">
<div className="media align-items-center">
<div className="mr-3">
@@ -214,15 +190,15 @@ export default function Contacts(){
</div>
<div className="w-100">
<div className="mail-msg-item-titel justify-content-between">
<p>{contact?.sender}</p>
<p>{contact.sender}</p>
{/* <p className="d-none d-xl-block">06:59 <span> PM </span></p> */}
<p className="d-none d-xl-block"><span>{new Date(contact?.added).toDateString()}</span></p>
<p className="d-none d-xl-block"><span>{new Date(contact.added).toDateString()}</span></p>
</div>
<h5 className="mb-0 my-2">{contact?.title}</h5>
<p>{contact?.message?.length < 100 ? contact?.message : contact?.message.substring(0,101) + ' ...' }</p>
<h5 className="mb-0 my-2">{contact.title}</h5>
<p>{contact.message.length < 100 ? contact.message : contact.message.substring(0,101) + ' ...' }</p>
<p className="d-xl-none">
<span>
{new Date(contact?.added).toDateString()}
{new Date(contact.added).toDateString()}
{/* {getCustomTime(contact.added)} */}
</span>
</p>
@@ -243,13 +219,13 @@ export default function Contacts(){
<img src={getImage("avtar/03.jpg")} className="img-fluid" alt="user" />
</div>
<div>
<h4 className="mb-0">{activeContactUID ? activeDetail[0]?.sender : filteredContactData[0]?.sender}</h4>
<p>{activeContactUID ? new Date(activeDetail[0]?.added).toDateString() : new Date(filteredContactData[0]?.added).toDateString()}</p>
<h4 className="mb-0">{activeContactUID ? activeDetail[0].sender : contactsData[0].sender}</h4>
<p>{activeContactUID ? new Date(activeDetail[0].added).toDateString() : new Date(contactsData[0].added).toDateString()}</p>
</div>
</div>
<div className="mt-4 d-flex justify-content-between">
<div>
<h3>{activeContactUID ? activeDetail[0]?.title : filteredContactData[0]?.title}</h3>
<h3>{activeContactUID ? activeDetail[0].title : contactsData[0].title}</h3>
</div>
<div className="d-flex">
{/*<a href="javascript:void(0)"><i className="fa fa-reply font-22 pr-3"></i></a>*/}
@@ -257,7 +233,7 @@ export default function Contacts(){
</div>
</div>
<div>
<p>{activeContactUID ? activeDetail[0]?.message : filteredContactData[0]?.message}</p>
<p>{activeContactUID ? activeDetail[0].message : contactsData[0].message}</p>
{/* <p className="my-4">hey adminjon...</p>
<p className="mb-2">I truly believe Augustines words are true and if you look at history you know it is true. There are many people in the world with amazing talents who realize only a small percentage of their potential. We all know people who live this truth.</p>
<p>We also know those epic stories, those modern-day legends surrounding the early failures of such supremely successful folks as Michael Jordan and Bill Gates. We can look a bit further back in time to Albert Einstein or even further back to Abraham Lincoln. What made each of these people so successful? Motivation.</p>
@@ -67,7 +67,7 @@ export default function UserHeader(){
<ul className="navbar-nav nav-right ml-auto">
<li className="nav-item user-profile">
<a href="#" className="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown">
<img src={getImage('profile-pic-circle.png')} alt="avtar-img" />
<img src={getImage('avtar/02.jpg')} alt="avtar-img" />
<span className="bg-success user-status"></span>
</a>
<div className="dropdown-menu animated fadeIn">
+3 -3
View File
@@ -39,9 +39,9 @@ export default function ProductFactory(){
getProductData.mutate(reqData)
},[])
const myproduct_data = getProductData?.data?.data?.myproduct?.myproudct // PRODUCT DETAILS
const product_name = myproduct_data?.product_name;
const product_status = myproduct_data?.status;
const myproduct_data = getProductData?.data?.data?.myproduct?.myproudct // PRODUCT DETAILS
const product_name = myproduct_data?.product_name;
const product_status = myproduct_data?.status;
return(
<>
+2 -1
View File
@@ -59,7 +59,8 @@ export default function ProductStart(props){
<img className="card-img-top" src={getImage(productBanner)} alt="Card image cap" />
<div className="card-body">
<h4 className="card-title">{productTitle}</h4>
<p className="card-text">{productDescription}</p>
<div className="card-text" dangerouslySetInnerHTML={{__html: productDescription}}/>
{/* <p className="card-text">{productDescription}</p> */}
</div>
</div>
</div>
+1 -7
View File
@@ -85,13 +85,7 @@
}
.mail-contant .mail-f{
position: relative;
position: absolute;
width: 100%;
bottom: 0;
@include desktop {
position: absolute;
}
@include desktop-lg {
position: absolute;
}
}
+10 -8
View File
@@ -91,14 +91,6 @@ export const getCalendarEvents = (reqData) => {
return postAuxEnd(`/panel/account/calendar`, postData, false)
}
// FUNCTION TO GET DASHBOARD PRODUCT DATA SECTION
export const contactData = (reqData) => {
let postData = {
...reqData,
}
return postAuxEnd(`/panel/contacts`, postData, false)
}
// FUNCTION TO GET DASHBOARD RECENT ACTIONS SECTION
export const recentActions = (reqData) => {
let postData = {
@@ -188,3 +180,13 @@ export const productProvision = (reqData) => {
// return getAuxEnd(`/panel/myproduct/provision`, postData)
}
// FUNCTION TO GET DASHBOARD PRODUCT DATA SECTION
export const contactData = (reqData) => {
let postData = {
...reqData,
token: localStorage.getItem('token'), // USER TOKEN
uid: localStorage.getItem('uid') // USER UID
}
return postAuxEnd(`/panel/contacts`, postData, false)
// return getAuxEnd(`/panel/contacts`)
}