Compare commits

...

12 Commits

Author SHA1 Message Date
DESKTOP-QHP1O2H\MIKE ec2eb6df31 made changes for blog api data 2023-01-16 02:54:34 -08:00
tokslaw 5c960ac93d Merge branch 'myFit--ContactPg2' of MyFit/www-myfit into master 2023-01-16 02:54:42 +00:00
chief-bube 6ddb27ef6d Updates on contact page 2023-01-16 02:34:46 -08:00
dev-chiefworks 2780de6fa2 Updated the env 2023-01-15 19:39:42 -05:00
tokslaw 5b948bdebf Merge branch 'myFit--ContactPageForm' of MyFit/www-myfit into master 2023-01-16 00:29:18 +00:00
tokslaw 23b344c002 Merge branch 'myfit_updated_FAQs_page' of MyFit/www-myfit into master 2023-01-16 00:10:03 +00:00
Olu Amey 374328b801 screen 2023-01-14 11:05:50 -05:00
Olu Amey 279b5f29e0 Screen 1 2023-01-14 11:00:55 -05:00
Olu Amey cbfba7372a Image fix 2023-01-14 10:39:20 -05:00
Olu Amey 3f55298faa Added Image 2023-01-14 10:12:17 -05:00
Olu Amey a4a811d233 Initial Images 2023-01-14 10:05:20 -05:00
VICTOR\anumu 651ab89033 Added the FAQs api to all FAQs page 2023-01-14 07:46:46 +01:00
17 changed files with 240 additions and 171 deletions
+6 -1
View File
@@ -9,6 +9,11 @@ REACT_APP_FACEBOOK="https://www.facebook.com/profile.php?id=100066498622246"
REACT_APP_TWITTER="https://twitter.com/fluxtra"
REACT_APP_APPSITE=" https://myfitapp.mermsemr.com"
#REACT_APP_APPSITE="http://localhost:7012"
REACT_APP_AUX_ENDPOINT = "https://devapi.mermsemr.com/en/desktop/api/v2/myfit"
REACT_APP_FORM_TIMEOUT = 10000
REACT_APP_FORM_TIMEOUT = 10000
REACT_APP_MAX_MESSAGE_LENGHT =300
REACT_APP_BLOGSITE="https://blog.mermsemr.com/"
+18
View File
@@ -3525,6 +3525,24 @@ header.fix_style.white_header {
resize: none;
}
/* Textarea scrollbar */
.contact_page_section .contact_inner .contact_form form .form-group textarea::-webkit-scrollbar {
width: 12px;
cursor: pointer;
}
.contact_page_section .contact_inner .contact_form form .form-group textarea::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: var(--light-bg);
}
.contact_page_section .contact_inner .contact_form form .form-group textarea::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
background-color: var(--body-text-purple);
}
.contact_page_section .contact_inner .contact_form form .form-group .contact_btn{
display: flex !important;
align-items: center;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 141 KiB

+136 -135
View File
@@ -1,27 +1,62 @@
import React from 'react'
import { Link } from 'react-router-dom'
import BGImg from "../../../assets/images/bread_crumb_bg.png"
import BGImg1 from "../../../assets/images/bread_crumb_bg_one.png"
import BGImg2 from "../../../assets/images/bread_crumb_bg_two.png"
import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import BGImg from "../../../assets/images/bread_crumb_bg.png";
import BGImg1 from "../../../assets/images/bread_crumb_bg_one.png";
import BGImg2 from "../../../assets/images/bread_crumb_bg_two.png";
import SiteService from "../../../vendors/service/siteService";
const Main = ({ brdcum, bgimg }) => {
const [blogData, setBlogData] = useState([]);
const Main = ({brdcum,bgimg}) => {
const api = new SiteService();
useEffect(() => {
getBlogData();
}, []);
const getBlogData = async () => {
try {
const res = await api.blogData();
setBlogData(res.data);
console.log(res.data);
} catch (error) {
console.log("Error from blog data ", error);
}
};
return (
<>
<div className="bred_crumb" style={{ backgroundImage : `url(${BGImg})`}}>
<div className="container">
<span className="banner_shape1"> <img src="assets/images/banner-shape1.png" alt="image" /> </span>
<span className="banner_shape2"> <img src="assets/images/banner-shape2.png" alt="image" /> </span>
<span className="banner_shape3"> <img src="assets/images/banner-shape3.png" alt="image" /> </span>
<div className="bred_crumb" style={{ backgroundImage: `url(${BGImg})` }}>
<div className="container">
<span className="banner_shape1">
{" "}
<img src="assets/images/banner-shape1.png" alt="image" />{" "}
</span>
<span className="banner_shape2">
{" "}
<img src="assets/images/banner-shape2.png" alt="image" />{" "}
</span>
<span className="banner_shape3">
{" "}
<img src="assets/images/banner-shape3.png" alt="image" />{" "}
</span>
<div className="bred_text">
<h1>Latest Blog Post</h1>
<ul>
<li><Link to="/">Home</Link></li>
<li><span>»</span></li>
<li><Link to="/blog">Blog</Link></li>
</ul>
{/* <div className="search_bar">
<div className="bred_text">
<h1>Latest Blog Post</h1>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<span>»</span>
</li>
<li>
<Link to="/blog">Blog</Link>
</li>
</ul>
{/* <div className="search_bar">
<form action="">
<div className="form-group">
<input type="text" placeholder="Search here" className="form-control"/>
@@ -29,126 +64,92 @@ const Main = ({brdcum,bgimg}) => {
</div>
</form>
</div>*/}
</div>
</div>
</div>
</div>
</div>
<section className="row_am blog_list_main">
<div className="container">
<div className="row">
<div className="col-lg-6" data-aos="fade-in" data-aos-duration="1500">
<div className="blog_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image"/>
<span>20 min ago</span>
</div>
<section className="row_am blog_list_main">
{blogData.map((data,index) => {
if (index == 0){
return (
<div className="container">
<div className="row">
<div
className="col-lg-6"
data-aos="fade-in"
data-aos-duration="1500"
>
<div className="blog_img">
<img
src={data.meta_value}
alt="image"
/>
{/* <span>20 min ago</span> */}
<span>{new Date (data.post_date).toDateString()}</span>
</div>
</div>
<div className="col-lg-6">
<div className="blog_text">
<div className="section_title">
<h2>Top rated app of the year!</h2>
<p>myFit has powerful connectivity, fitness, health, and safety features
Also makes provision Fitness tracking,Workout tracking,Heart rate monitoringscrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic Lorem Ipsum is simply dummy text of the printing and typesetting.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
<div className="blog_text">
<div className="section_title">
<h2>{data.post_title}</h2>
<div dangerouslySetInnerHTML={{__html: data.post_content.substring(0,400)+' . . .'}}></div>
<Link to={`/blog-single/${data.id}`} state={{data}}>
READ MORE
</Link>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section className="row_am latest_story blog_list_story" id="blog">
<div className="container">
<div className="row">
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image" />
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Cool features added!</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting
industry lorem Ipsum has.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image" />
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Top rated app! Yupp.</h3>
<p>Simply dummy text of the printing and typesetting industry lorem Ipsum has Lorem Ipsum is.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image"/>
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Creative ideas on app.</h3>
<p>Printing and typesetting industry lorem Ipsum has Lorem simply dummy text of the.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image"/>
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Excellence UI design</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting
industry lorem Ipsum has.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image"/>
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Quick and easy Search</h3>
<p>Simply dummy text of the printing and typesetting industry lorem Ipsum has Lorem Ipsum is.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
<div className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src="https://picsum.photos/seed/picsum/505/378" alt="image"/>
<span>45 min ago</span>
</div>
<div className="story_text">
<h3>Chat function eded</h3>
<p>Printing and typesetting industry lorem Ipsum has Lorem simply dummy text of the.</p>
<Link to="/blog-single">READ MORE</Link>
</div>
</div>
</div>
</div>
<div className="pagination_block">
<ul>
<li><Link to="#" className="prev"> Visit our blog</Link></li>
</ul>
</div>
</div>
</section>
</>
)
}
export default Main
)
}
})}
</section>
<section className="row_am latest_story blog_list_story" id="blog">
<div className="container">
<div className="row">
{blogData.map((data, index) => {
if (index > 0){
return (
<div key={data.id} className="col-md-4">
<div className="story_box" data-aos="fade-up" data-aos-duration="1500">
<div className="story_img">
<img src={data.meta_value} alt="image" />
<span>{new Date (data && data.post_date).toDateString()}</span>
</div>
<div className="story_text">
<h3>{data.post_title}</h3>
<div dangerouslySetInnerHTML={{__html: data && data.post_content.substring(0,100)+' . . .'}}></div>
<Link to={`/blog-single/${data.id}`} state={{data}}>
READ MORE
</Link>
</div>
</div>
</div>
)}
})}
</div>
<div className="pagination_block">
<ul>
<li>
<Link to="#" className="prev">
{" "}
Visit our blog
</Link>
</li>
</ul>
</div>
</div>
</section>
</>
);
};
export default Main;
+27 -14
View File
@@ -1,11 +1,18 @@
import React from 'react'
import { Link } from 'react-router-dom'
import React, { useEffect, useState } from "react";
import { Link, useLocation } from 'react-router-dom'
import Bredcrumb from '../../Bredcrumb/Main'
import BGImg from "../../../assets/images/bread_crumb_bg.png"
import BGImg1 from "../../../assets/images/bread_crumb_bg_one.png"
import BGImg2 from "../../../assets/images/bread_crumb_bg_two.png"
import { useParams } from "react-router-dom";
const Main = ({brdcum}) => {
const { id } = useParams();
const location = useLocation();
const data = location.state?.data;
console.log("location", location, data);
return (
<>
@@ -49,15 +56,21 @@ const Main = ({brdcum}) => {
<div className="blog_inner_pannel">
<div className="review">
<span>Review</span>
<span>45 min ago</span>
{/* <span>45 min ago</span> */}
<span>{new Date (data && data.post_modified).toDateString()}</span>
</div>
<div className="section_title">
<h2>Top rated app of the year!</h2>
<h2>{data && data.post_title}</h2>
</div>
<div className="main_img">
<img src="assets/images/blog_detail_main.png" alt="image" />
<img src={data && data.meta_value} alt="image" />
</div>
<div className="info">
<h3>{data && data.post_name}</h3>
<div dangerouslySetInnerHTML={{__html: data && data.post_content}}></div>
</div>
{/* <div className="info">
<p>Lorem Ipsum is simply dummy text of the printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy text ev er since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic Lorem Ipsum is simply dummy text of the printing and typesettingindustry lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived.</p>
<p>Printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy text ev er since the 1500s, when an unnown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic Lorem Ipsum is simply dummy text of the printing and typesettingindustry lorem Ipsum has been the industrys centuries, but also the leap into electronic.</p>
<h3>Why we are best</h3>
@@ -72,7 +85,7 @@ const Main = ({brdcum}) => {
<li><p> <span className="icon"><i className="icofont-check-circled"></i></span> Unknown printer took a galley of type and scrambled it to make.</p></li>
<li><p> <span className="icon"><i className="icofont-check-circled"></i></span> Type specimen book. It has survived not only.</p></li>
</ul>
</div>
</div>
<div className="two_img">
<div className="row">
<div className="col-md-6">
@@ -86,21 +99,21 @@ const Main = ({brdcum}) => {
<div className="info">
<h3>Why we are best</h3>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy text ev er since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic Lorem Ipsum is simply dummy text of the printing and typesettingindustry lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived.</p>
</div>
<div className="quote_block">
</div>
<div className="quote_block">
<span className="q_icon"><img src="assets/images/quote_icon.png" alt="image" /></span>
<h2>Lorem Ipsum is simply dummy text of the printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy.</h2>
<p><span className="name">Mr. John Doe,</span> Apper Inc</p>
</div>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy text ev er since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic industry.</p>
</div> */}
{/* <p>Lorem Ipsum is simply dummy text of the printing and typesetting in dustry lorem Ipsum has been the industrys standard dummy text ev er since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic industry.</p> */}
<div className="blog_authore">
<div className="authore_info">
<div className="avtar">
{/* <div className="avtar">
<img src="assets/images/blog_d02.png" alt="image" />
</div>
</div> */}
<div className="text">
<h3>By: John Dow</h3>
<span>July 25, 2022</span>
<h3>{data && data.post_author}</h3>
<span>{new Date (data && data.post_date).toDateString()}</span>
</div>
</div>
<div className="social_media">
+7 -4
View File
@@ -6,7 +6,7 @@ import Bredcrumb from "../Bredcrumb/Main";
import BGImg from "../../assets/images/bread_crumb_bg.png";
import BGImg1 from "../../assets/images/bread_crumb_bg_one.png";
import BGImg2 from "../../assets/images/bread_crumb_bg_two.png";
import axios from "axios";
import SuccessImg from "../../assets/images/experts_01.png"
import SiteService from "../../vendors/service/siteService";
@@ -100,7 +100,7 @@ const Main = ({ brdcum }) => {
response.innerHTML = `<p> SEND MESSAGE </p>`;
contact_body.innerHTML = `<div class='contact_body animate pop'>
<div><img /></div>
<div><img src=${SuccessImg} /></div>
<p>We have received your message and will follow up promptly.</p>
</div>`;
setTimeout(() => {
@@ -240,12 +240,13 @@ const Main = ({ brdcum }) => {
<FormInput
name="phone"
type="text"
type="number"
placeholder="Phone"
errorMessage="It should be a valid phone number!"
maxLenght={15}
value={values.phone}
onChange={onChange}
pattern="^[0-9]{15}$"
/>
<div className="form-group">
@@ -254,8 +255,10 @@ const Main = ({ brdcum }) => {
className="form-control"
placeholder="Your message"
value={values.msg}
errorMessage='words have exceeded 350 characters!'
onChange={onChange}
maxLength={350}
maxLength={300}
pattern="^[A-Za-z0-9]{5, 300}$"
/>
</div>
<div className="form-group term_check">
-10
View File
@@ -2,27 +2,17 @@ import { HashLink as Link } from "react-router-hash-link";
import React, { useEffect, useState } from "react";
import AOS from "aos";
import OwlCarousel from "react-owl-carousel";
//import Trusted from "../HomeMain/Trusted/Main";
import Features from "../HomeMain/Features/Main";
//import AboutApp from "../HomeMain/AboutApp/Main";
//import Design from "../HomeMain/Design/Main";
import Work from "../HomeMain/Work/Main";
//import Testimonial from "../HomeMain/Testimonial/Main";
//import Pricing from "../HomeMain/Pricing/Main";
import Faq from "../HomeMain/Faq/Main";
import Interface from "../HomeMain/Interface/Main";
import Download from "../HomeMain/Download/Main";
import Story from "../HomeMain/Story/Main";
import anim from "../../assets/images/anim_line.png";
import blueapp from "../../assets/images/appstore_blue.png";
import whiteapp from "../../assets/images/appstore_white.png";
import blue from "../../assets/images/googleplay_blue.png";
import white from "../../assets/images/googleplay_white.png";
//import used1 from "../../assets/images/used01.png";
//import used2 from "../../assets/images/used02.png";
//import used3 from "../../assets/images/used03.png";
//import used4 from "../../assets/images/used04.png";
import msg from "../../assets/images/message_icon.png";
import shield from "../../assets/images/shield_icon.png";
import screen from "../../assets/images/screen.png";
+43 -4
View File
@@ -1,8 +1,21 @@
import React ,{ useState } from 'react'
import React ,{ useState, useEffect } from 'react'
import SiteService from '../../../vendors/service/siteService'
const Main = ({gredient}) => {
const[activeFaq, setActiveFaq] = useState({a : true})
const[activeFaq, setActiveFaq] = useState({btn0 : false})
const [faqs, setFaqs] = useState([]); // initial state for FAQs before API call
let faqServices = new SiteService(); // instantiating the class
const allFaqData = () => {
return faqServices.faqData();
};
useEffect(() => {
allFaqData().then((data) => setFaqs(data.data));
}, []);
return (
<>
@@ -16,7 +29,7 @@ const Main = ({gredient}) => {
</div>
<div className="faq_panel">
<div className="accordion" id="accordionExample">
<div className="card" data-aos="fade-up" data-aos-duration="1500">
{/* <div className="card" data-aos="fade-up" data-aos-duration="1500">
<div className="card-header" id="headingOne">
<h2 className="mb-0">
<button type="button" className={`btn btn-link ${activeFaq.a && "active"}`} onClick= {() => setActiveFaq(activeFaq.a ? {a : false} : {a : true})} data-toggle="collapse" data-target="#collapseOne">
@@ -81,7 +94,33 @@ const Main = ({gredient}) => {
leap into electronic typesetting, remaining essentially unchanged.</p>
</div>
</div>
</div>
</div> */}
{/* displays loading ... while the page fetches the FAQs */}
{faqs.length < 1 && <h3>Loading...</h3>}
{faqs.length > 0 && faqs.map((faq, index) => {
let id = `heading${index}`; //headingSeven
let target = `collapse${index}`; //#collapseSeven
return(
<div key={index} className="card" data-aos="fade-up">
<div className="card-header" id={id}>
<h2 className="mb-0">
<button type="button" className={`btn btn-link collapsed ${activeFaq[`btn${index}`] && "active"}`} onClick= {() => setActiveFaq(activeFaq[`btn${index}`] ? {[`btn${index}`] : false} : {[`btn${index}`] : true})} data-toggle="collapse"
data-target={`#${target}`}>{activeFaq[`btn${index}`] ? <i className="icon_faq icofont-minus"></i> : <i className="icon_faq icofont-plus"></i>}{faq.title}
</button>
</h2>
</div>
<div id={target} className="collapse" aria-labelledby={id} data-parent="#accordionExample">
<div className="card-body">
<p>{faq.text}</p>
</div>
</div>
</div>
)
})}
</div>
</div>
</div>
+1 -1
View File
@@ -9,7 +9,7 @@ import SiteService from '../../../vendors/service/siteService'
const Main = ({brdcum}) => {
const[activeFaq, setActiveFaq] = useState({a : true})
const[activeFaq, setActiveFaq] = useState({btn0 : false})
const [faqs, setFaqs] = useState([]); // initial state for FAQs before API call
+1 -1
View File
@@ -84,7 +84,7 @@ const Routing = () => {
<Route path="/sign-up" element={<SignUp />} />
<Route path="/pricing" element={<Pricing brdcum={brdcum} />} />
<Route path="/blog" element={<Blog brdcum={brdcum} />} />
<Route path="/blog-single" element={<BlogSingle brdcum={brdcum} />} />
<Route path="/blog-single/:id" element={<BlogSingle brdcum={brdcum} />} />
<Route path="/terms" element={<Terms brdcum={brdcum} />} />
<Route path="/privacy" element={<Privacy brdcum={brdcum} />} />
</Routes>
+1 -1
View File
@@ -7,7 +7,7 @@ class SiteService {
}
// Blog Data {Get}
blogData() {
return this.getAuxEnd("blogdata", null);
return this.getAuxEnd("/blogdata", null);
}
// Country Data {GET}