Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bd470ea8bc | |||
| 6c14b2587c | |||
| 085756b8bc | |||
| 8ac742e5d6 | |||
| c2db47cbb8 |
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
@@ -2,27 +2,40 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
|
||||
import getImage from "../../utils/getImage";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { useMutation, 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 contactsData = contacts?.data?.calendar_data?.contacts // LIST OF CONTACTS
|
||||
const contactsCategory = contacts?.data?.calendar_data?.category // LIST OF CATEGORY
|
||||
// const {data:contacts, isFetching, isError, error} = useQuery({
|
||||
// queryKey: queryKeys.contacts,
|
||||
// queryFn: () => contactData()
|
||||
// })
|
||||
|
||||
const [activeCategoryUID, setActiveCategoryUID] = useState('0') // HOLDS VALUE OF THE ACTIVE CATEGORY
|
||||
|
||||
const [activeContactUID, setActiveContactUID] = useState(null)
|
||||
const [activeDetail, setActiveDetail] = useState(null)
|
||||
const [activeContactUID, setActiveContactUID] = useState('')
|
||||
const [activeDetail, setActiveDetail] = useState([])
|
||||
|
||||
const [filteredContactData, setFiltererdContactData] = 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 changeActiveUID = (uid) => {
|
||||
setActiveContactUID(uid)
|
||||
@@ -42,10 +55,21 @@ 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']} />
|
||||
{isFetching ?
|
||||
{getContactData?.isPending ?
|
||||
<>
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
@@ -53,10 +77,10 @@ export default function Contacts(){
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
: isError ?
|
||||
: getContactData?.error ?
|
||||
<div className="row">
|
||||
<div className="col-12">
|
||||
<p className='text-danger'>{error.message}</p>
|
||||
<p className='text-danger'>{getContactData?.error?.message}</p>
|
||||
</div>
|
||||
</div>
|
||||
:
|
||||
@@ -121,14 +145,14 @@ export default function Contacts(){
|
||||
</div>
|
||||
</li>
|
||||
{contactsCategory && contactsCategory.map(item => (
|
||||
<li key={item?.product_id} className="py-2" onClick={()=>changeActiveCategoryUID(item?.product_id)} style={{cursor: 'pointer'}}>
|
||||
<li key={item?.cid} className="py-2" onClick={()=>changeActiveCategoryUID(`A00000${item?.cid}`)} style={{cursor: 'pointer'}}>
|
||||
<div>
|
||||
<span className="nav align-items-center">
|
||||
<span>
|
||||
<i className={`fa fa-circle-o pr-4 ${activeCategoryUID == item?.product_id ? 'text-primary' : 'text-warning'}`}></i>
|
||||
<i className={`fa fa-circle-o pr-4 ${activeCategoryUID == `A00000${item?.cid}` ? 'text-primary' : 'text-warning'}`}></i>
|
||||
</span>
|
||||
<span>
|
||||
<span>{item?.title}</span>
|
||||
<span>{item?.description}</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
@@ -177,10 +201,10 @@ export default function Contacts(){
|
||||
</div>
|
||||
</div>
|
||||
<div className="mail-msg scrollbar scroll_dark">
|
||||
{contactsData && (filteredContactData || contactsData).map((contact, index)=> {
|
||||
const isActive = (contact.uid == activeContactUID) || (!activeContactUID && index == 0)
|
||||
{contactsData && filteredContactData?.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">
|
||||
@@ -190,15 +214,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>
|
||||
@@ -219,13 +243,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 : contactsData[0].sender}</h4>
|
||||
<p>{activeContactUID ? new Date(activeDetail[0].added).toDateString() : new Date(contactsData[0].added).toDateString()}</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-4 d-flex justify-content-between">
|
||||
<div>
|
||||
<h3>{activeContactUID ? activeDetail[0].title : contactsData[0].title}</h3>
|
||||
<h3>{activeContactUID ? activeDetail[0]?.title : filteredContactData[0]?.title}</h3>
|
||||
</div>
|
||||
<div className="d-flex">
|
||||
{/*<a href="javascript:void(0)"><i className="fa fa-reply font-22 pr-3"></i></a>*/}
|
||||
@@ -233,7 +257,7 @@ export default function Contacts(){
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<p>{activeContactUID ? activeDetail[0].message : contactsData[0].message}</p>
|
||||
<p>{activeContactUID ? activeDetail[0]?.message : filteredContactData[0]?.message}</p>
|
||||
{/* <p className="my-4">hey adminjon...</p>
|
||||
<p className="mb-2">I truly believe Augustine’s 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('avtar/02.jpg')} alt="avtar-img" />
|
||||
<img src={getImage('profile-pic-circle.png')} alt="avtar-img" />
|
||||
<span className="bg-success user-status"></span>
|
||||
</a>
|
||||
<div className="dropdown-menu animated fadeIn">
|
||||
|
||||
@@ -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(
|
||||
<>
|
||||
|
||||
@@ -18,6 +18,8 @@ export default function ProductStart(props){
|
||||
const productDescription = props.productData?.description;
|
||||
const promotion_text = props.productData?.promotion_text;
|
||||
const product_status = props.productData?.status;
|
||||
const saleText = props.productData?.sale_text;
|
||||
|
||||
const modalRef = useRef()
|
||||
|
||||
const refetch = () => {
|
||||
@@ -116,16 +118,7 @@ export default function ProductStart(props){
|
||||
</button>
|
||||
</div>
|
||||
<div className="modal-body">
|
||||
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis
|
||||
in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at
|
||||
eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus
|
||||
</p>
|
||||
<p>
|
||||
sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia
|
||||
bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque
|
||||
nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor
|
||||
fringilla. Cras mattis consectetur purus sit amet fermentum. Cras justo odio,
|
||||
</p>
|
||||
<div className="" dangerouslySetInnerHTML={{__html: saleText}}/>
|
||||
{/* {mutation.error &&
|
||||
<>
|
||||
<div className="col-12">
|
||||
|
||||
@@ -85,7 +85,13 @@
|
||||
}
|
||||
|
||||
.mail-contant .mail-f{
|
||||
position: absolute;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
@include desktop {
|
||||
position: absolute;
|
||||
}
|
||||
@include desktop-lg {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,14 @@ 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 = {
|
||||
@@ -180,13 +188,3 @@ 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`)
|
||||
}
|
||||
Reference in New Issue
Block a user