Compare commits

..

6 Commits

Author SHA1 Message Date
victorAnumudu 10e65fa6ff added dummy help page 2025-07-07 19:56:45 +01:00
ameye f503422c42 Merge branch 'sales-text' of MERMS/MermsPanelReactJS into master 2025-07-07 15:38:13 +00:00
victorAnumudu bd470ea8bc added sale text 2025-07-07 12:38:21 +01:00
ameye 6c14b2587c Merge branch 'contact-endpoint' of MERMS/MermsPanelReactJS into master 2025-07-06 22:24:27 +00:00
ameye 085756b8bc Merge branch 'product-data-desc' of MERMS/MermsPanelReactJS into master 2025-07-06 22:24:21 +00:00
victorAnumudu eb4d5315de fixed product data description 2025-07-06 20:47:17 +01:00
9 changed files with 96 additions and 31 deletions
+8
View File
@@ -39,4 +39,12 @@
button{
font-size: 1rem!important;
font-weight: 700!important;
}
.font-600 {
font-weight: 600;
}
.accordion-button, .accordion-button:not(.collapsed) {
background-color: transparent!important;
}
+16 -11
View File
@@ -1,23 +1,28 @@
import { QueryClientProvider, QueryClient } from '@tanstack/react-query'
import { Provider } from 'react-redux';
import store from './store/store'
import AppRouters from './AppRouters';
import './App.css';
function App() {
const queryClient = new QueryClient({
defaultOptions: {
queries: {
refetchOnWindowFocus: false,
retry: 3,
// refetchOnMount: false,
staleTime: Infinity // can also be a number in millisecond
},
const queryClient = new QueryClient({
defaultOptions: {
queries: {
refetchOnWindowFocus: false,
retry: 3,
// refetchOnMount: false,
staleTime: 360000 // can also be a number in millisecond
},
})
},
})
function App() {
return (
<QueryClientProvider client={queryClient}>
<AppRouters />
<Provider store={store}>
<AppRouters />
</Provider>
</QueryClientProvider>
);
}
+2
View File
@@ -18,6 +18,7 @@ import SettingsPage from './views/SettingsPage'
import ProductPage from './views/ProductPage'
import SocketIOContextProvider from './component/context/SocketIOContext';
import CSignupPage from './views/CSignupPage';
import HelpPage from './views/HelpPage';
function AppRouters() {
return (
@@ -45,6 +46,7 @@ function AppRouters() {
<Route path={siteLinks.user} element={<UserPage />} />
<Route path={siteLinks.calendar} element={<CalendarPage />} />
<Route path={siteLinks.settings} element={<SettingsPage />} />
<Route path={siteLinks.help} element={<HelpPage />} />
</Route>
</Route>
</Route>
+48
View File
@@ -0,0 +1,48 @@
import React from "react";
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
export default function HelpCom(){
return(
<>
<BreadcrumbComBS title='Frequesntly Asked Questions' paths={['Dashboard', 'Help']} />
{/*<div className="row">*/}
{/* <div className="vh-100 col-12 flex align-items-center">Coming Soon</div>*/}
{/*</div>*/}
<div className="row account-contant">
<div className="col-12">
<div className="card card-statistics">
<div className="card-body p-lg-15" style={{backgroundColor:"#f9f9fb"}}>
<p className="mb-4">First, a disclaimer the entire process of writing a blog post often takes more than a couple of hours, even if you can type eighty words as per minute and your writing skills are sharp.</p>
<div className="row">
<div className="accordion" id="accordionExample">
{['a', 'b', 'c', 'd'].map((item, index)=>{
return (
<div className="accordion-item">
<h2 className="accordion-header">
<button className="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target={`#${item}`} aria-expanded="true" aria-controls="collapseOne">
{`Accordion Item ${item} 1`}
</button>
</h2>
<div id={item} className={`accordion-collapse collapse ${index == 0 && 'show'}`} data-bs-parent="#accordionExample">
<div className="accordion-body">
<strong>This is the first items accordion body.</strong> It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. Its also worth noting that just about any HTML can go within the accordion-body, though the transition does limit overflow.
</div>
</div>
</div>
)
})}
</div>
</div>
</div>
</div>
</div>
</div>
</>
)
}
@@ -74,8 +74,8 @@ export default function UserHeader(){
<div className="bg-gradient px-4 py-3">
<div className="d-flex align-items-center justify-content-between">
<div className="mr-1">
<h5 className="text-white mb-0">{userDetails?.firstname} {userDetails?.lastname}</h5>
<small className="text-white">{userDetails.email}</small>
<h4 className="text-white mb-0 font-600">{userDetails?.firstname} {userDetails?.lastname}</h4>
<p className="text-white font-600">{userDetails.email}</p>
</div>
<a href="#" onClick={logout} className="text-white font-20 tooltip-wrapper" data-toggle="tooltip"
data-placement="top" title="" data-original-title="Logout"> <i
@@ -92,8 +92,10 @@ export default function UserHeader(){
<Link className="dropdown-item d-flex nav-link" to={siteLinks.settings}>
<i className=" ti ti-settings pr-2 text-info"></i> Settings
</Link>
<a className="dropdown-item d-flex nav-link" href="#">
<i className="fa fa-compass pr-2 text-warning"></i> Need help?</a>
<Link className="dropdown-item d-flex nav-link" to={siteLinks.help}>
<i className="fa fa-compass pr-2 text-warning"></i>
Need help?
</Link>
{/*<div className="row mt-2">*/}
{/* <div className="col">*/}
+5 -11
View File
@@ -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 = () => {
@@ -59,7 +61,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>
@@ -115,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">
+3 -5
View File
@@ -1,9 +1,9 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
// import './index.css';
import { Provider } from 'react-redux';
// import { Provider } from 'react-redux';
// import store from './store/store'
import { BrowserRouter } from 'react-router-dom';
import store from './store/store'
import App from './App';
//import reportWebVitals from './reportWebVitals';
@@ -17,9 +17,7 @@ const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<Provider store={store}>
<App />
</Provider>
<App />
</BrowserRouter>
</React.StrictMode>
);
+1
View File
@@ -1,5 +1,6 @@
const siteLinks = {
error: '*',
help: '/help',
home: '/',
dash: '/dash',
product: '/product/*',
+7
View File
@@ -0,0 +1,7 @@
import HelpCom from '../component/help/HelpCom'
export default function HelpPage() {
return (
<HelpCom />
)
}