Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 724df1f035 | |||
| 5c960ac93d | |||
| 6ddb27ef6d | |||
| 2780de6fa2 | |||
| 5b948bdebf | |||
| 23b344c002 | |||
| 116917bdb3 | |||
| a0ae955e2e | |||
| 374328b801 | |||
| 279b5f29e0 | |||
| cbfba7372a | |||
| 3f55298faa | |||
| a4a811d233 | |||
| 0f34385f13 | |||
| 651ab89033 | |||
| 2bc9ed0fdb | |||
| f452bb90ff | |||
| 1834077952 | |||
| ada9203824 | |||
| 6545922b6a | |||
| a5eb1f2edf | |||
| ce1879d0a2 | |||
| c0d589a115 | |||
| 89fc6adfdd | |||
| 6323b86c6b | |||
| d946417490 |
@@ -8,6 +8,12 @@ REACT_APP_IOS_URL="https://play.google.com/store/apps/details?id=com.mermsemr.my
|
|||||||
REACT_APP_FACEBOOK="https://www.facebook.com/profile.php?id=100066498622246"
|
REACT_APP_FACEBOOK="https://www.facebook.com/profile.php?id=100066498622246"
|
||||||
REACT_APP_TWITTER="https://twitter.com/fluxtra"
|
REACT_APP_TWITTER="https://twitter.com/fluxtra"
|
||||||
|
|
||||||
REACT_APP_APPSITE="https://myfitapp.mermsemr.com"
|
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_AUX_ENDPOINT = "https://devapi.mermsemr.com/en/desktop/api/v2/myfit"
|
||||||
|
REACT_APP_FORM_TIMEOUT = 10000
|
||||||
|
REACT_APP_MAX_MESSAGE_LENGHT =300
|
||||||
|
REACT_APP_BLOGSITE="https://blog.mermsemr.com/"
|
||||||
|
|
||||||
|
|||||||
@@ -3521,6 +3521,108 @@ header.fix_style.white_header {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group textarea {
|
||||||
|
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;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group .contact_btn p{
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group .contact_btn > span{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contact_body{
|
||||||
|
min-height: 48rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_body{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 800;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Animations */
|
||||||
|
.animate.pop {
|
||||||
|
animation-name: animate-pop;
|
||||||
|
animation-timing-function: cubic-bezier(0.26, 0.53, 0.74, 1.48);
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes animate-pop {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: scale(0.5, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For the err msg */
|
||||||
|
#errText{
|
||||||
|
text-align: center;
|
||||||
|
color: tomato;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group span{
|
||||||
|
font-size: 12px;
|
||||||
|
color: tomato;
|
||||||
|
padding: 3px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group input:valid[focused="true"]{
|
||||||
|
border: 1px solid var(--dark-purple);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group input:invalid[focused="true"]{
|
||||||
|
border: 1px solid tomato;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_page_section .contact_inner .contact_form form .form-group input:invalid[focused="true"] ~ span{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.contact_page_section
|
.contact_page_section
|
||||||
.contact_inner
|
.contact_inner
|
||||||
.contact_form
|
.contact_form
|
||||||
@@ -4585,6 +4687,55 @@ header.fix_style.white_header {
|
|||||||
padding: 20px 0 0 0;
|
padding: 20px 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
|
||||||
|
.loader{
|
||||||
|
border-radius: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader-sm{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LOADER 1 */
|
||||||
|
|
||||||
|
#loader-1:before, #loader-1:after{
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 100%;
|
||||||
|
border: 3.5px solid transparent;
|
||||||
|
border-top-color: var(--body-text-purple);
|
||||||
|
}
|
||||||
|
|
||||||
|
#loader-1:before{
|
||||||
|
z-index: 100;
|
||||||
|
animation: spin 1.5s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loader-1:after{
|
||||||
|
border: 3.5px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin{
|
||||||
|
0%{
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
-ms-transform: rotate(0deg);
|
||||||
|
-o-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100%{
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 992px) {
|
@media screen and (max-width: 992px) {
|
||||||
.navbar-expand-lg .navbar-nav .has_dropdown .drp_btn {
|
.navbar-expand-lg .navbar-nav .has_dropdown .drp_btn {
|
||||||
position: absolute !important;
|
position: absolute !important;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 141 KiB |
@@ -1,24 +1,128 @@
|
|||||||
|
/** @format */
|
||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link, useNavigate } from "react-router-dom";
|
||||||
import Bredcrumb from "../Bredcrumb/Main";
|
import Bredcrumb from "../Bredcrumb/Main";
|
||||||
import BGImg from "../../assets/images/bread_crumb_bg.png";
|
import BGImg from "../../assets/images/bread_crumb_bg.png";
|
||||||
import BGImg1 from "../../assets/images/bread_crumb_bg_one.png";
|
import BGImg1 from "../../assets/images/bread_crumb_bg_one.png";
|
||||||
import BGImg2 from "../../assets/images/bread_crumb_bg_two.png";
|
import BGImg2 from "../../assets/images/bread_crumb_bg_two.png";
|
||||||
|
import SuccessImg from "../../assets/images/experts_01.png"
|
||||||
|
|
||||||
import SiteService from "../../vendors/service/siteService";
|
import SiteService from "../../vendors/service/siteService";
|
||||||
|
|
||||||
|
// Form Inputs
|
||||||
|
const FormInput = (props) => {
|
||||||
|
let {
|
||||||
|
name,
|
||||||
|
type,
|
||||||
|
placeholder,
|
||||||
|
required,
|
||||||
|
maxLenght,
|
||||||
|
errorMessage,
|
||||||
|
value,
|
||||||
|
onChange,
|
||||||
|
pattern,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const [focused, setFocused] = useState(false);
|
||||||
|
const handleFocus = () => {
|
||||||
|
return setFocused(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="form-group">
|
||||||
|
<input
|
||||||
|
name={name}
|
||||||
|
type={type}
|
||||||
|
placeholder={placeholder}
|
||||||
|
className="form-control"
|
||||||
|
maxLength={maxLenght}
|
||||||
|
required={required}
|
||||||
|
value={value}
|
||||||
|
onChange={onChange}
|
||||||
|
onBlur={handleFocus}
|
||||||
|
pattern={pattern}
|
||||||
|
focused={focused.toString()}
|
||||||
|
/>
|
||||||
|
<span>{errorMessage}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const Main = ({ brdcum }) => {
|
const Main = ({ brdcum }) => {
|
||||||
let [countries, setCountries] = useState([]) // initial state for country dropdown
|
let response = document.getElementById("contact_loader");
|
||||||
let countryClass = new SiteService() // instantiating the class
|
let contact_body = document.getElementById("contact_body");
|
||||||
|
let errText = document.getElementById("errText");
|
||||||
|
let navigate = useNavigate();
|
||||||
|
|
||||||
|
// Form Validation
|
||||||
|
const [values, setValues] = useState({
|
||||||
|
name: "",
|
||||||
|
email: "",
|
||||||
|
phone: "",
|
||||||
|
message: "",
|
||||||
|
country: "",
|
||||||
|
}); //initial state values
|
||||||
|
const [countries, setCountries] = useState([]); // initial state for country dropdown
|
||||||
|
const [myData, setMyData] = useState(null);
|
||||||
|
// Gave a generic name for multiple calls
|
||||||
|
const API_CALL = new SiteService(); // instantiating the class
|
||||||
|
// API CALL
|
||||||
const allCountry = () => {
|
const allCountry = () => {
|
||||||
return countryClass.countryData();
|
return API_CALL.countryData();
|
||||||
}
|
};
|
||||||
|
const contactForm = async (value) => {
|
||||||
|
return await API_CALL.contactData(value);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onChange = (e) => {
|
||||||
|
setValues((prev) => ({ ...prev, [e.target.name]: e.target.value }));
|
||||||
|
};
|
||||||
|
console.log(values);
|
||||||
|
|
||||||
|
// Submitting form
|
||||||
|
const handleSubmit = async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
response.innerHTML = `<div
|
||||||
|
class="loader loader-sm"
|
||||||
|
id="loader-1" style='margin-right: 20px'></div>`;
|
||||||
|
|
||||||
|
contactForm(values)
|
||||||
|
.then((contact) => {
|
||||||
|
setMyData(contact);
|
||||||
|
|
||||||
|
// Checking for errors
|
||||||
|
if (contact?.data?.status < 1 || contact?.data?.message_id == "")
|
||||||
|
return (errText.textContent =
|
||||||
|
"unable to send your message, please try able");
|
||||||
|
else {
|
||||||
|
response.innerHTML = `<p> SEND MESSAGE </p>`;
|
||||||
|
|
||||||
|
contact_body.innerHTML = `<div class='contact_body animate pop'>
|
||||||
|
<div><img src=${SuccessImg} /></div>
|
||||||
|
<p>We have received your message and will follow up promptly.</p>
|
||||||
|
</div>`;
|
||||||
|
setTimeout(() => {
|
||||||
|
navigate("/");
|
||||||
|
}, 10000);
|
||||||
|
|
||||||
|
setValues((prev) => ({ ...prev, [e.target.name]: "" }));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
//CALLS THE API AFTER COMPONENT LOADS
|
//CALLS THE API AFTER COMPONENT LOADS
|
||||||
useEffect(()=>{
|
useEffect(() => {
|
||||||
allCountry().then((data)=> setCountries(Object.values(data.data)))
|
allCountry().then((data) => setCountries(Object.values(data.data)));
|
||||||
},[])
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log(myData);
|
||||||
|
}, [myData]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -71,107 +175,178 @@ const Main = ({ brdcum }) => {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<section className="contact_page_section" id="contact">
|
<section
|
||||||
|
className="contact_page_section"
|
||||||
|
id="contact">
|
||||||
<div className="container">
|
<div className="container">
|
||||||
<div className="contact_inner">
|
<div className="contact_inner">
|
||||||
<div className="contact_form">
|
<div
|
||||||
|
className="contact_form"
|
||||||
|
id="contact_body">
|
||||||
<div className="section_title">
|
<div className="section_title">
|
||||||
<h2>
|
<h2>
|
||||||
Leave a <span>message</span>
|
<span>Leave a</span> message
|
||||||
</h2>
|
</h2>
|
||||||
<p>Fill up form below, our team will get back soon</p>
|
<p>Fill up form below, our team will get back soon</p>
|
||||||
</div>
|
</div>
|
||||||
<form action="">
|
|
||||||
<div className="form-group">
|
{/* Contact Form */}
|
||||||
<input
|
<form onSubmit={handleSubmit}>
|
||||||
type="text"
|
<FormInput
|
||||||
placeholder="Name"
|
name="name"
|
||||||
className="form-control"
|
type="text"
|
||||||
/>
|
placeholder="Name"
|
||||||
</div>
|
errorMessage="Please enter your name"
|
||||||
<div className="form-group">
|
required={true}
|
||||||
<input
|
maxLenght={35}
|
||||||
type="email"
|
value={values.name}
|
||||||
placeholder="Email"
|
onChange={onChange}
|
||||||
className="form-control"
|
pattern="^[A-Za-z]{1,35}$"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
|
<FormInput
|
||||||
|
name="email"
|
||||||
|
type="email"
|
||||||
|
placeholder="Email"
|
||||||
|
errorMessage="It should be a valid email address!"
|
||||||
|
required={true}
|
||||||
|
maxLenght={35}
|
||||||
|
value={values.email}
|
||||||
|
onChange={onChange}
|
||||||
|
/>
|
||||||
|
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
<select className="form-control">
|
<select
|
||||||
<option value="">Country</option>
|
className="form-control"
|
||||||
{countries.length > 0 && countries.map((country, index) => <option key={index} value={country}>{country}</option>)}
|
name="country"
|
||||||
|
value={values.country}
|
||||||
|
onChange={onChange}
|
||||||
|
required>
|
||||||
|
<option
|
||||||
|
value={""}
|
||||||
|
onCha>
|
||||||
|
Country
|
||||||
|
</option>
|
||||||
|
{countries.length > 0 &&
|
||||||
|
countries.map((country, index) => (
|
||||||
|
<option
|
||||||
|
key={index}
|
||||||
|
value={country}>
|
||||||
|
{country}
|
||||||
|
</option>
|
||||||
|
))}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div className="form-group">
|
|
||||||
<input
|
<FormInput
|
||||||
type="text"
|
name="phone"
|
||||||
placeholder="Phone"
|
type="number"
|
||||||
className="form-control"
|
placeholder="Phone"
|
||||||
/>
|
errorMessage="It should be a valid phone number!"
|
||||||
</div>
|
maxLenght={15}
|
||||||
|
value={values.phone}
|
||||||
|
onChange={onChange}
|
||||||
|
pattern="^[0-9]{15}$"
|
||||||
|
/>
|
||||||
|
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
<textarea
|
<textarea
|
||||||
|
name="msg"
|
||||||
className="form-control"
|
className="form-control"
|
||||||
placeholder="Your message"
|
placeholder="Your message"
|
||||||
></textarea>
|
value={values.msg}
|
||||||
|
errorMessage='words have exceeded 350 characters!'
|
||||||
|
onChange={onChange}
|
||||||
|
maxLength={300}
|
||||||
|
pattern="^[A-Za-z0-9]{5, 300}$"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="form-group term_check">
|
<div className="form-group term_check">
|
||||||
<input type="checkbox" id="term" />
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
id="term"
|
||||||
|
onChange={onChange}
|
||||||
|
required
|
||||||
|
/>
|
||||||
<label htmlFor="term">
|
<label htmlFor="term">
|
||||||
I agree to the terms and conditions
|
I agree to the terms and conditions
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div className="form-group mb-0">
|
<div className="form-group mb-0">
|
||||||
<button type="submit" className="btn puprple_btn">
|
<button
|
||||||
SEND MESSAGE
|
type="submit"
|
||||||
|
className="btn puprple_btn contact_btn"
|
||||||
|
aria-label="submit form"
|
||||||
|
id="contact_loader">
|
||||||
|
<p> SEND MESSAGE </p>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
{/* Error Tag */}
|
||||||
|
<p id="errText" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Contact Info */}
|
||||||
<div className="contact_info">
|
<div className="contact_info">
|
||||||
<div className="icon">
|
<div className="icon">
|
||||||
<img src="assets/images/contact_message_icon.png" alt="image" />
|
<img
|
||||||
|
src="assets/images/contact_message_icon.png"
|
||||||
|
alt="image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="section_title">
|
<div className="section_title">
|
||||||
<h2>
|
<h2>
|
||||||
Have any <span>question?</span>
|
<span> Have any </span>question?
|
||||||
</h2>
|
</h2>
|
||||||
<p>
|
<p>
|
||||||
If you have any question about our product, service, payment
|
If you have any question about our product, service, payment
|
||||||
or company, Visit our <Link to="/faq">FAQs page.</Link>
|
or company, Visit our <Link to="/faq">FAQs page.</Link>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Link to="/faq" className="btn puprple_btn">
|
<Link
|
||||||
|
to="/faq"
|
||||||
|
className="btn puprple_btn">
|
||||||
READ FAQ
|
READ FAQ
|
||||||
</Link>
|
</Link>
|
||||||
<ul className="contact_info_list">
|
<ul className="contact_info_list">
|
||||||
<li>
|
<li>
|
||||||
<div className="img">
|
<div className="img">
|
||||||
<img src="assets/images/mail_icon.png" alt="image" />
|
<img
|
||||||
|
src="assets/images/mail_icon.png"
|
||||||
|
alt="image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text">
|
<div className="text">
|
||||||
<span>Email Us</span>
|
<span>Email Us</span>
|
||||||
<Link to="#">example@gmail.com</Link>
|
<a href={`mailto: ${process.env.REACT_APP_SUPPORT_EMAIL}`}>
|
||||||
|
{process.env.REACT_APP_SUPPORT_EMAIL}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div className="img">
|
<div className="img">
|
||||||
<img src="assets/images/call_icon.png" alt="image" />
|
<img
|
||||||
|
src="assets/images/call_icon.png"
|
||||||
|
alt="image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text">
|
<div className="text">
|
||||||
<span>Call Us</span>
|
<span>Call Us</span>
|
||||||
<Link to="#">+1 (888) 553-46-11</Link>
|
<a href={`tel: ${process.env.REACT_APP_US_PHONE}`}>
|
||||||
|
{process.env.REACT_APP_US_PHONE}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div className="img">
|
<div className="img">
|
||||||
<img src="assets/images/location_icon.png" alt="image" />
|
<img
|
||||||
|
src="assets/images/location_icon.png"
|
||||||
|
alt="image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text">
|
<div className="text">
|
||||||
<span>Visit Us</span>
|
<span>Visit Us</span>
|
||||||
<p>5687, Business Avenue, New York, USA 5687</p>
|
<p>{process.env.REACT_APP_US_ADDRESS}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -180,7 +355,7 @@ const Main = ({ brdcum }) => {
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section className="row_am map_section">
|
<section className="row_am map_section">
|
||||||
<div className="container"></div>
|
<div className="container" />
|
||||||
</section>
|
</section>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,27 +2,17 @@ import { HashLink as Link } from "react-router-hash-link";
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import AOS from "aos";
|
import AOS from "aos";
|
||||||
import OwlCarousel from "react-owl-carousel";
|
import OwlCarousel from "react-owl-carousel";
|
||||||
//import Trusted from "../HomeMain/Trusted/Main";
|
|
||||||
import Features from "../HomeMain/Features/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 Work from "../HomeMain/Work/Main";
|
||||||
//import Testimonial from "../HomeMain/Testimonial/Main";
|
|
||||||
//import Pricing from "../HomeMain/Pricing/Main";
|
|
||||||
import Faq from "../HomeMain/Faq/Main";
|
import Faq from "../HomeMain/Faq/Main";
|
||||||
import Interface from "../HomeMain/Interface/Main";
|
import Interface from "../HomeMain/Interface/Main";
|
||||||
import Download from "../HomeMain/Download/Main";
|
import Download from "../HomeMain/Download/Main";
|
||||||
import Story from "../HomeMain/Story/Main";
|
import Story from "../HomeMain/Story/Main";
|
||||||
|
|
||||||
import anim from "../../assets/images/anim_line.png";
|
import anim from "../../assets/images/anim_line.png";
|
||||||
import blueapp from "../../assets/images/appstore_blue.png";
|
import blueapp from "../../assets/images/appstore_blue.png";
|
||||||
import whiteapp from "../../assets/images/appstore_white.png";
|
import whiteapp from "../../assets/images/appstore_white.png";
|
||||||
import blue from "../../assets/images/googleplay_blue.png";
|
import blue from "../../assets/images/googleplay_blue.png";
|
||||||
import white from "../../assets/images/googleplay_white.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 msg from "../../assets/images/message_icon.png";
|
||||||
import shield from "../../assets/images/shield_icon.png";
|
import shield from "../../assets/images/shield_icon.png";
|
||||||
import screen from "../../assets/images/screen.png";
|
import screen from "../../assets/images/screen.png";
|
||||||
|
|||||||
@@ -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 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 (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -16,7 +29,7 @@ const Main = ({gredient}) => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="faq_panel">
|
<div className="faq_panel">
|
||||||
<div className="accordion" id="accordionExample">
|
<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">
|
<div className="card-header" id="headingOne">
|
||||||
<h2 className="mb-0">
|
<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">
|
<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>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -68,8 +68,7 @@ const Main = ({video}) => {
|
|||||||
<div className="container">
|
<div className="container">
|
||||||
<div className="section_title" data-aos="fade-up" data-aos-duration="1500" data-aos-delay="100">
|
<div className="section_title" data-aos="fade-up" data-aos-duration="1500" data-aos-delay="100">
|
||||||
<h2><span>Features</span> that makes app different!</h2>
|
<h2><span>Features</span> that makes app different!</h2>
|
||||||
<p>Lorem Ipsum is simply dummy text of the printing and typese tting <br/> indus orem Ipsum has beenthe
|
<p>Fitness Integration with your health plan in your pocket bolsters<br/>healthier life by tracking and experiencing life-changing results.</p>
|
||||||
standard dummy.</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="feature_detail">
|
<div className="feature_detail">
|
||||||
<div className="left_data feature_box">
|
<div className="left_data feature_box">
|
||||||
|
|||||||
@@ -1,13 +1,30 @@
|
|||||||
import { Link } from 'react-router-dom'
|
import { Link } from 'react-router-dom'
|
||||||
import React , { useState} from 'react'
|
import React , { useState, useEffect} from 'react'
|
||||||
|
import AOS from "aos";
|
||||||
import img1 from '../../../assets/images/standard.png'
|
import img1 from '../../../assets/images/standard.png'
|
||||||
import img2 from '../../../assets/images/unlimited.png'
|
import img2 from '../../../assets/images/unlimited.png'
|
||||||
import img3 from '../../../assets/images/premium.png'
|
import img3 from '../../../assets/images/premium.png'
|
||||||
|
|
||||||
|
import SiteService from '../../../vendors/service/siteService'
|
||||||
|
|
||||||
const Main = ({gredient , video}) => {
|
const Main = ({gredient , video}) => {
|
||||||
|
|
||||||
const[tog, setTog] = useState()
|
const[tog, setTog] = useState()
|
||||||
|
|
||||||
|
const [prices, setPrices] = useState([]); // initial state for FAQs before API call
|
||||||
|
|
||||||
|
let priceServices = new SiteService(); // instantiating the class
|
||||||
|
|
||||||
|
const getAllPriceData = () => {
|
||||||
|
return priceServices.priceData();
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getAllPriceData().then((data) => setPrices(data.data));
|
||||||
|
AOS.init();
|
||||||
|
AOS.refresh();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{gredient ?
|
{gredient ?
|
||||||
@@ -29,37 +46,52 @@ const Main = ({gredient , video}) => {
|
|||||||
|
|
||||||
<div className={`pricing_pannel monthly_plan ${tog ? '' : 'active'}`}>
|
<div className={`pricing_pannel monthly_plan ${tog ? '' : 'active'}`}>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
{prices.length > 0 &&
|
||||||
<div className="icon">
|
prices.map((price, index) => {
|
||||||
<img src="assets/images/standard-one.png" alt="image" />
|
if (index % 2 == 0) {
|
||||||
</div>
|
return (
|
||||||
<div className="pkg_name">
|
<div key={index} className="col-md-4">
|
||||||
<h3>Standard</h3>
|
<div className="pricing_block">
|
||||||
<span>For the basics</span>
|
<div className="icon">
|
||||||
</div>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
<span className="price">$15</span>
|
</div>
|
||||||
<ul className="benifits">
|
<div className="pkg_name">
|
||||||
<li>
|
<h3>{price.title}</h3>
|
||||||
<p>Up to 5 Website</p>
|
<span>{price.text}</span>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
<span className="price">{price.price}</span>
|
||||||
<p>50 GB disk space</p>
|
<ul className="benifits">
|
||||||
</li>
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
<li>
|
</ul>
|
||||||
<p>10 Customize sub pages</p>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
</div>
|
||||||
<p>2 Domains access</p>
|
);
|
||||||
</li>
|
} else {
|
||||||
<li>
|
return (
|
||||||
<p>Support on request</p>
|
<div key={index} className="col-md-4">
|
||||||
</li>
|
<div className="pricing_block highlited_block">
|
||||||
</ul>
|
<div className="icon">
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div className="pkg_name">
|
||||||
<div className="col-md-4">
|
<h3>{price.title}</h3>
|
||||||
|
<span>{price.text}</span>
|
||||||
|
</div>
|
||||||
|
<span className="price">{price.price}</span>
|
||||||
|
<ul className="benifits">
|
||||||
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
|
</ul>
|
||||||
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
{/* <div className="col-md-4">
|
||||||
<div className="pricing_block highlited_block">
|
<div className="pricing_block highlited_block">
|
||||||
<div className="icon">
|
<div className="icon">
|
||||||
<img src="assets/images/unlimited-one.png" alt="image"/>
|
<img src="assets/images/unlimited-one.png" alt="image"/>
|
||||||
@@ -86,136 +118,60 @@ const Main = ({gredient , video}) => {
|
|||||||
<p>24/7 Customer support</p>
|
<p>24/7 Customer support</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
<img src="assets/images/premium-one.png" alt="image" />
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Premium</h3>
|
|
||||||
<span>For small team</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$55</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 10 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>100 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>15 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>24/7 Customer support</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={`pricing_pannel yearly_plan ${tog ? 'active' : ''}`} >
|
<div className={`pricing_pannel yearly_plan ${tog ? 'active' : ''}`} >
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
<img src="assets/images/standard.png" alt="image" />
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Standard</h3>
|
|
||||||
<span>For the basics</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$150</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 10 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>100 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>25 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Support on request</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="col-md-4">
|
{prices.length > 0 &&
|
||||||
<div className="pricing_block highlited_block">
|
prices.map((price, index) => {
|
||||||
<div className="icon">
|
if (index % 2 == 0) {
|
||||||
<img src="assets/images/unlimited.png" alt="image" />
|
return (
|
||||||
</div>
|
<div key={index} className="col-md-4">
|
||||||
<div className="pkg_name">
|
<div className="pricing_block">
|
||||||
<h3>Unlimited</h3>
|
<div className="icon">
|
||||||
<span>For the professionals</span>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
</div>
|
</div>
|
||||||
<span className="price">$999</span>
|
<div className="pkg_name">
|
||||||
<ul className="benifits">
|
<h3>{price.title}</h3>
|
||||||
<li>
|
<span>{price.text}</span>
|
||||||
<p>Unlimited Website</p>
|
</div>
|
||||||
</li>
|
<span className="price">{price.price}</span>
|
||||||
<li>
|
<ul className="benifits">
|
||||||
<p>400 GB disk space</p>
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
</li>
|
</ul>
|
||||||
<li>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
<p>40 Customize sub pages</p>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
);
|
||||||
<p>20 Domains access</p>
|
} else {
|
||||||
</li>
|
return (
|
||||||
<li>
|
<div key={index} className="col-md-4">
|
||||||
<p>24/7 Customer support</p>
|
<div className="pricing_block highlited_block">
|
||||||
</li>
|
<div className="icon">
|
||||||
</ul>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
</div>
|
||||||
</div>
|
<div className="pkg_name">
|
||||||
</div>
|
<h3>{price.title}</h3>
|
||||||
|
<span>{price.text}</span>
|
||||||
|
</div>
|
||||||
|
<span className="price">{price.price}</span>
|
||||||
|
<ul className="benifits">
|
||||||
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
|
</ul>
|
||||||
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
<img src="assets/images/premium.png" alt="image" />
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Premium</h3>
|
|
||||||
<span>For small team</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$550</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 20 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>200 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>25 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>8 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>24/7 Customer support</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -241,193 +197,101 @@ const Main = ({gredient , video}) => {
|
|||||||
|
|
||||||
<div className={`pricing_pannel monthly_plan ${tog ? '' : 'active'}`}>
|
<div className={`pricing_pannel monthly_plan ${tog ? '' : 'active'}`}>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
{prices.length > 0 &&
|
||||||
<div className="icon">
|
prices.map((price, index) => {
|
||||||
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={img1} alt="image" /> }
|
if (index % 2 == 0) {
|
||||||
</div>
|
return (
|
||||||
<div className="pkg_name">
|
<div key={index} className="col-md-4">
|
||||||
<h3>Standard</h3>
|
<div className="pricing_block">
|
||||||
<span>For the basics</span>
|
<div className="icon">
|
||||||
</div>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
<span className="price">$15</span>
|
</div>
|
||||||
<ul className="benifits">
|
<div className="pkg_name">
|
||||||
<li>
|
<h3>{price.title}</h3>
|
||||||
<p>Up to 5 Website</p>
|
<span>{price.text}</span>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
<span className="price">{price.price}</span>
|
||||||
<p>50 GB disk space</p>
|
<ul className="benifits">
|
||||||
</li>
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
<li>
|
</ul>
|
||||||
<p>10 Customize sub pages</p>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
</div>
|
||||||
<p>2 Domains access</p>
|
);
|
||||||
</li>
|
} else {
|
||||||
<li>
|
return (
|
||||||
<p>Support on request</p>
|
<div key={index} className="col-md-4">
|
||||||
</li>
|
<div className="pricing_block highlited_block">
|
||||||
</ul>
|
<div className="icon">
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div className="pkg_name">
|
||||||
<div className="col-md-4">
|
<h3>{price.title}</h3>
|
||||||
<div className="pricing_block highlited_block">
|
<span>{price.text}</span>
|
||||||
<div className="icon">
|
</div>
|
||||||
{ video ? <img src="assets/images/unlimited-one.png" alt="image"/> : <img src={img2} alt="image"/> }
|
<span className="price">{price.price}</span>
|
||||||
</div>
|
<ul className="benifits">
|
||||||
<div className="pkg_name">
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
<h3>Unlimited</h3>
|
</ul>
|
||||||
<span>For the professionals</span>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
</div>
|
</div>
|
||||||
<span className="price">$99</span>
|
</div>
|
||||||
<ul className="benifits">
|
);
|
||||||
<li>
|
}
|
||||||
<p>Unlimited Website</p>
|
})
|
||||||
</li>
|
}
|
||||||
<li>
|
|
||||||
<p>200 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>20 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>10 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>24/7 Customer support</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
{video ? <img src="assets/images/premium-one.png" alt="image" /> : <img src={img3} alt="image" /> }
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Premium</h3>
|
|
||||||
<span>For small team</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$55</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 10 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>100 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>15 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>24/7 Customer support</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={`pricing_pannel yearly_plan ${tog ? 'active' : ''}`} >
|
<div className={`pricing_pannel yearly_plan ${tog ? 'active' : ''}`} >
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={img1} alt="image" /> }
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Standard</h3>
|
|
||||||
<span>For the basics</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$150</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 10 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>100 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>25 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Support on request</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="col-md-4">
|
{prices.length > 0 &&
|
||||||
<div className="pricing_block highlited_block">
|
prices.map((price, index) => {
|
||||||
<div className="icon">
|
if (index % 2 == 0) {
|
||||||
{ video ? <img src="assets/images/unlimited-one.png" alt="image"/> : <img src={img2}alt="image"/> }
|
return (
|
||||||
</div>
|
<div key={index} className="col-md-4">
|
||||||
<div className="pkg_name">
|
<div className="pricing_block">
|
||||||
<h3>Unlimited</h3>
|
<div className="icon">
|
||||||
<span>For the professionals</span>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
</div>
|
</div>
|
||||||
<span className="price">$999</span>
|
<div className="pkg_name">
|
||||||
<ul className="benifits">
|
<h3>{price.title}</h3>
|
||||||
<li>
|
<span>{price.text}</span>
|
||||||
<p>Unlimited Website</p>
|
</div>
|
||||||
</li>
|
<span className="price">{price.price}</span>
|
||||||
<li>
|
<ul className="benifits">
|
||||||
<p>400 GB disk space</p>
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
</li>
|
</ul>
|
||||||
<li>
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
<p>40 Customize sub pages</p>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li>
|
);
|
||||||
<p>20 Domains access</p>
|
} else {
|
||||||
</li>
|
return (
|
||||||
<li>
|
<div key={index} className="col-md-4">
|
||||||
<p>24/7 Customer support</p>
|
<div className="pricing_block highlited_block">
|
||||||
</li>
|
<div className="icon">
|
||||||
</ul>
|
{ video ? <img src="assets/images/standard-one.png" alt="image" /> : <img src={price.icon} alt="image" /> }
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
</div>
|
||||||
</div>
|
<div className="pkg_name">
|
||||||
</div>
|
<h3>{price.title}</h3>
|
||||||
|
<span>{price.text}</span>
|
||||||
|
</div>
|
||||||
|
<span className="price">{price.price}</span>
|
||||||
|
<ul className="benifits">
|
||||||
|
{price.features.map((feature, index)=> <p key={index}>{feature}</p>)}
|
||||||
|
</ul>
|
||||||
|
<Link to="/" className="btn white_btn">Start Now</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
<div className="col-md-4">
|
|
||||||
<div className="pricing_block">
|
|
||||||
<div className="icon">
|
|
||||||
{video ? <img src="assets/images/premium-one.png" alt="image" /> : <img src={img3} alt="image" /> }
|
|
||||||
</div>
|
|
||||||
<div className="pkg_name">
|
|
||||||
<h3>Premium</h3>
|
|
||||||
<span>For small team</span>
|
|
||||||
</div>
|
|
||||||
<span className="price">$550</span>
|
|
||||||
<ul className="benifits">
|
|
||||||
<li>
|
|
||||||
<p>Up to 20 Website</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>200 GB disk space</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>25 Customize sub pages</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>8 Domains access</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>24/7 Customer support</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to="/faq" className="btn white_btn">BUY NOW</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ const Main = ({dark}) => {
|
|||||||
<div className={`how_it_inner ${dark && "dark"}`}>
|
<div className={`how_it_inner ${dark && "dark"}`}>
|
||||||
<div className="section_title" data-aos="fade-up" data-aos-duration="1500" data-aos-delay="300">
|
<div className="section_title" data-aos="fade-up" data-aos-duration="1500" data-aos-delay="300">
|
||||||
<h2><span>How it works</span> - 3 easy steps</h2>
|
<h2><span>How it works</span> - 3 easy steps</h2>
|
||||||
<p>Lorem Ipsum is simply dummy text of the printing and typese tting <br/> indus orem Ipsum has beenthe
|
<p>myFit has powerful connectivity, fitness, health, and safety features,<br/> Also makes provision Fitness tracking,Workout tracking,Heart rate monitoring.</p>
|
||||||
standard dummy.</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="step_block">
|
<div className="step_block">
|
||||||
<ul>
|
<ul>
|
||||||
@@ -57,7 +56,7 @@ const Main = ({dark}) => {
|
|||||||
<li>
|
<li>
|
||||||
<div className="step_text" data-aos="fade-right" data-aos-duration="1500">
|
<div className="step_text" data-aos="fade-right" data-aos-duration="1500">
|
||||||
<h4>It’s done, enjoy the app</h4>
|
<h4>It’s done, enjoy the app</h4>
|
||||||
<span>Have any questions check our <Link to="#">FAQs</Link></span>
|
<span>Have any questions check our <Link to="/faq">FAQs</Link></span>
|
||||||
<p>Get most amazing app experience,Explore and share the app</p>
|
<p>Get most amazing app experience,Explore and share the app</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="step_number">
|
<div className="step_number">
|
||||||
|
|||||||
@@ -5,9 +5,23 @@ import BGImg from "../../../assets/images/bread_crumb_bg.png"
|
|||||||
import BGImg1 from "../../../assets/images/bread_crumb_bg_one.png"
|
import BGImg1 from "../../../assets/images/bread_crumb_bg_one.png"
|
||||||
import BGImg2 from "../../../assets/images/bread_crumb_bg_two.png"
|
import BGImg2 from "../../../assets/images/bread_crumb_bg_two.png"
|
||||||
|
|
||||||
|
import SiteService from '../../../vendors/service/siteService'
|
||||||
|
|
||||||
const Main = ({brdcum}) => {
|
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
|
||||||
|
|
||||||
|
let faqServices = new SiteService(); // instantiating the class
|
||||||
|
|
||||||
|
const allFaqData = () => {
|
||||||
|
return faqServices.faqData();
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
allFaqData().then((data) => setFaqs(data.data));
|
||||||
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{brdcum.b1 &&
|
{brdcum.b1 &&
|
||||||
@@ -54,7 +68,8 @@ const Main = ({brdcum}) => {
|
|||||||
<div className="container">
|
<div className="container">
|
||||||
<div className="faq_panel">
|
<div className="faq_panel">
|
||||||
<div className="accordion" id="accordionExample">
|
<div className="accordion" id="accordionExample">
|
||||||
<div className="card" data-aos="fade-up" >
|
|
||||||
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingOne">
|
<div className="card-header" id="headingOne">
|
||||||
<h2 className="mb-0">
|
<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">
|
<button type="button" className={`btn btn-link ${activeFaq.a && "active"}`} onClick= {() => setActiveFaq(activeFaq.a ? {a : false} : {a : true})} data-toggle="collapse" data-target="#collapseOne">
|
||||||
@@ -69,8 +84,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
<div className="card" data-aos="fade-up" >
|
|
||||||
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingTwo">
|
<div className="card-header" id="headingTwo">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.b && "active"}`} onClick= {() => setActiveFaq(activeFaq.b ? {b : false} : {b : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.b && "active"}`} onClick= {() => setActiveFaq(activeFaq.b ? {b : false} : {b : true})} data-toggle="collapse"
|
||||||
@@ -85,9 +101,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
|
|
||||||
<div className="card" data-aos="fade-up" >
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingThree">
|
<div className="card-header" id="headingThree">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.c && "active"}`} onClick= {() => setActiveFaq(activeFaq.c ? {c : false} : {c : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.c && "active"}`} onClick= {() => setActiveFaq(activeFaq.c ? {c : false} : {c : true})} data-toggle="collapse"
|
||||||
@@ -103,9 +119,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
|
|
||||||
<div className="card" data-aos="fade-up" >
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingFour">
|
<div className="card-header" id="headingFour">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.d && "active"}`} onClick= {() => setActiveFaq(activeFaq.d ? {d : false} : {d : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.d && "active"}`} onClick= {() => setActiveFaq(activeFaq.d ? {d : false} : {d : true})} data-toggle="collapse"
|
||||||
@@ -122,9 +138,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
|
|
||||||
<div className="card" data-aos="fade-up" >
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingFive">
|
<div className="card-header" id="headingFive">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.e && "active"}`} onClick= {() => setActiveFaq(activeFaq.e ? {e : false} : {e : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.e && "active"}`} onClick= {() => setActiveFaq(activeFaq.e ? {e : false} : {e : true})} data-toggle="collapse"
|
||||||
@@ -141,9 +157,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
|
|
||||||
<div className="card" data-aos="fade-up" >
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingSix">
|
<div className="card-header" id="headingSix">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.f && "active"}`} onClick= {() => setActiveFaq(activeFaq.f ? {f : false} : {f : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.f && "active"}`} onClick= {() => setActiveFaq(activeFaq.f ? {f : false} : {f : true})} data-toggle="collapse"
|
||||||
@@ -160,9 +176,9 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
|
|
||||||
<div className="card" data-aos="fade-up" >
|
{/* <div className="card" data-aos="fade-up" >
|
||||||
<div className="card-header" id="headingSeven">
|
<div className="card-header" id="headingSeven">
|
||||||
<h2 className="mb-0">
|
<h2 className="mb-0">
|
||||||
<button type="button" className={`btn btn-link collapsed ${activeFaq.g && "active"}`} onClick= {() => setActiveFaq(activeFaq.g ? {g : false} : {g : true})} data-toggle="collapse"
|
<button type="button" className={`btn btn-link collapsed ${activeFaq.g && "active"}`} onClick= {() => setActiveFaq(activeFaq.g ? {g : false} : {g : true})} data-toggle="collapse"
|
||||||
@@ -179,7 +195,33 @@ const Main = ({brdcum}) => {
|
|||||||
leap into electronic typesetting, remaining essentially unchanged.</p>
|
leap into electronic typesetting, remaining essentially unchanged.</p>
|
||||||
</div>
|
</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.b && "active"}`} data-toggle="collapse"
|
||||||
|
data-target={`#${target}`}>{activeFaq.b ? <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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,15 +5,28 @@ class SiteService {
|
|||||||
constructor() {
|
constructor() {
|
||||||
console.log("Er are here anyway");
|
console.log("Er are here anyway");
|
||||||
}
|
}
|
||||||
|
// Blog Data {Get}
|
||||||
blogData() {
|
blogData() {
|
||||||
return this.getAuxEnd("blogdata", null);
|
return this.getAuxEnd("blogdata", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Country Data {GET}
|
||||||
countryData() {
|
countryData() {
|
||||||
return this.getAuxEnd("/country", null);
|
return this.getAuxEnd("/country", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
faqData() {}
|
// Contact Data{POST}
|
||||||
|
contactData() {
|
||||||
|
return this.postAuxEnd("/contact", null)
|
||||||
|
}
|
||||||
|
|
||||||
|
faqData() {
|
||||||
|
return this.getAuxEnd("/faq", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
priceData() {
|
||||||
|
return this.getAuxEnd("/pricing", null);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------- -----
|
//---------------------------------------- -----
|
||||||
//---------------------------------------- -----
|
//---------------------------------------- -----
|
||||||
@@ -45,7 +58,7 @@ class SiteService {
|
|||||||
|
|
||||||
postAuxEnd(uri, reqData) {
|
postAuxEnd(uri, reqData) {
|
||||||
const endPoint = process.env.REACT_APP_AUX_ENDPOINT + uri;
|
const endPoint = process.env.REACT_APP_AUX_ENDPOINT + uri;
|
||||||
Axios.post(endPoint)
|
return Axios.post(endPoint, reqData)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
console.log(response);
|
console.log(response);
|
||||||
// res = response;
|
// res = response;
|
||||||
|
|||||||