Compare commits

...

15 Commits

Author SHA1 Message Date
tokslaw e0a4517ffc Merge branch 'api-config-and-links' of FloatSystems/float-www into master 2023-04-12 14:47:32 +00:00
Ebube 59a4d3009b Merge branch 'footer-social-links' of into api-config-and-links 2023-04-11 17:15:25 +01:00
Ebube 391c0a7eaa Merge branch 'api-configurations-for-faq-and-contact' into api-config-and-links 2023-04-11 17:10:47 +01:00
jenkins 5dbe5f0b5a Merge branch 'master' of https://gitlab.chiefsoft.net/FloatSystems/float-www 2023-04-11 09:00:22 -04:00
jenkins 0f7e2a6bdb name text change 2023-04-11 09:00:01 -04:00
tokslaw 07031203ee Merge branch 'blog_image' of FloatSystems/float-www into master 2023-04-11 12:40:22 +00:00
victorAnumudu 477f47ef80 image and featured blog implemented 2023-04-10 21:47:08 +01:00
Ebube dc26150ac4 Merge branch 'master' of https://gitlab.chiefsoft.net/FloatSystems/float-www into footer-social-links 2023-04-10 21:16:11 +01:00
Ebube d81157f5ea Merge branch 'master' of https://gitlab.chiefsoft.net/FloatSystems/float-www into api-configurations-for-faq-and-contact 2023-04-10 21:14:29 +01:00
Ebube 01d93f9054 api calls for faq and contact 2023-04-10 21:12:02 +01:00
tokslaw ab1618cdab Merge branch 'blog_implementation' of FloatSystems/float-www into master 2023-04-10 16:09:02 +00:00
Ebube 43fa698c43 Merge branch 'master' of https://gitlab.chiefsoft.net/FloatSystems/float-www into api-configurations 2023-04-10 12:07:00 +01:00
Ebube 8d12fc6445 Merge branch 'master' of https://gitlab.chiefsoft.net/FloatSystems/float-www into footer-social-links 2023-04-10 12:04:26 +01:00
Ebube cfa177eaa9 added the endpoint 2023-04-10 12:01:59 +01:00
Ebube 186bfa6d8f Footer Links added 2023-04-10 02:46:56 +01:00
13 changed files with 259 additions and 335 deletions
+1
View File
@@ -10,3 +10,4 @@ REACT_APP_GOOGLE_PLAY_LINK='https://apps.apple.com/us/app/float-mobility/id14653
REACT_APP_AUX_ENDPOINT='https://float-gat.dev.chiefsoft.net/en/floatweb/api/v1/' REACT_APP_AUX_ENDPOINT='https://float-gat.dev.chiefsoft.net/en/floatweb/api/v1/'
REACT_APP_IMAGE_LINK='https://blog.float.sg/wp-content/uploads/'
+2 -2
View File
@@ -4714,8 +4714,8 @@ h5.posts-category {
.featured-badge { .featured-badge {
z-index: 70; z-index: 70;
position: absolute; position: absolute;
top: 20px; top: 10px;
right: 20px; right: 10px;
width: 45px; width: 45px;
height: 45px; height: 45px;
-webkit-border-radius: 100%; -webkit-border-radius: 100%;
+21 -12
View File
@@ -20,36 +20,45 @@ import GetStarted from './pages/GetStarted';
import FindEv from "./pages/FindEv"; import FindEv from "./pages/FindEv";
import FindMobility from "./pages/FindMobility"; import FindMobility from "./pages/FindMobility";
// import {
// BrowserRouter as Router,
// Routes,
// Route
// } from "react-router-dom";
import { Routes, Route } from "react-router-dom"; import { Routes, Route } from "react-router-dom";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import SiteService from "./svs/SiteService"; import SiteService from "./svs/SiteService";
function App() { function App() {
const [blogData, setBlogData] = useState([]) // for holding const [blogData, setBlogData] = useState([]) // for holding
const [faqData, setFaqData] = useState([]) // for holding
const siteApi = new SiteService(); // instantiating the API SERVICE const siteApi = new SiteService(); // instantiating the API SERVICE
const getBlogData = async () => { const getBlogData = async () => {
try { try {
const res = await siteApi.blogData(); const res = await siteApi.blogData();
if(res.status == 200 /* && res.data.status > 0*/){ if(res.status == 200 /* && res.data.status > 0*/){
console.log(res.data.payload, res.data); console.log(res.data);
setBlogData(res.data) setBlogData(res.data)
return return
} }
}catch(error) { }catch(error) {
setBlogData({payload: {blogdata: []}}) setBlogData({blogdata: []})
} }
}; };
const getFaqData = async () => {
try {
const res = await siteApi.faqData();
if(res.status == 200 /* && res.data.status > 0*/){
let data = await res.data
console.log(data);
setFaqData(data)
return
}
} catch (error) {
console.log(error)
}
}
useEffect(() => { useEffect(() => {
getBlogData(); getBlogData();
getFaqData();
}, []); }, []);
return ( return (
@@ -57,9 +66,9 @@ function App() {
<Header/> <Header/>
<Routes> <Routes>
<Route path="/" element={<FloatHome blogData={blogData} />} /> <Route path="/" element={<FloatHome blogData={blogData} faqData={faqData} />} />
<Route path="/about" element={<About/>} /> <Route path="/about" element={<About/>} />
<Route path="/faqs" element={<Faqs/>} /> <Route path="/faqs" element={<Faqs faqData={faqData}/>} />
<Route path="/features" element={<Features/>} /> <Route path="/features" element={<Features/>} />
<Route path="/pricing" element={<Pricing/>} /> <Route path="/pricing" element={<Pricing/>} />
<Route path="/reviews" element={<Reviews/>} /> <Route path="/reviews" element={<Reviews/>} />
+12 -7
View File
@@ -27,23 +27,27 @@ const BlogItems = ({blogData}) => {
return ( return (
<div className="row"> <div className="row">
{ {
blogData?.payload == undefined ? // API CALL IN PROGRESS blogData?.blogdata == undefined ? // API CALL IN PROGRESS
<div className='col-12 text-center display-4'>Loading...</div> // <div className='col-12 text-center display-4'>Loading...</div>
<div className="col-12 text-center">
<div className="spinner-border spinner-border-lg" role="status" style={{width: '3rem', height: '3rem'}}>
</div>
</div>
: :
// API CALL FINISHED // API CALL FINISHED
( (
blogData?.payload?.blogdata.length < 1 ? blogData?.blogdata.length < 1 ?
<div className='col-12 text-center display-4'>No Blog Currently Found!</div> <div className='col-12 text-center display-4'>No Blog Currently Found!</div>
: :
blogData?.payload?.blogdata.map((blog, index) => { blogData?.blogdata.map((blog, index) => {
if(location == '/blogs'){ if(location == '/blogs'){
return( return(
<div key={index} id="b-post-1" className="col-md-6 col-lg-4"> <div key={index} id="b-post-1" className="col-md-6 col-lg-4">
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s"> <div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s">
{/* BLOG POST IMAGE */} {/* BLOG POST IMAGE */}
<div className="blog-post-img rounded"> <div className="blog-post-img rounded">
<img className="img-fluid rounded" src="assets/images/blog/post-1-img.jpg" alt="blog-post-image" /> {/* <img className="img-fluid rounded" src="assets/images/blog/post-1-img.jpg" alt="blog-post-image" /> */}
{/* <img className="img-fluid" src={blog.meta_value} alt="blog-post-image" /> */} <img className="img-fluid rounded" src={process.env.REACT_APP_IMAGE_LINK + blog.meta_value} alt="blog-post-image" />
</div> </div>
{/* BLOG POST TEXT */} {/* BLOG POST TEXT */}
<div className="blog-post-txt"> <div className="blog-post-txt">
@@ -73,7 +77,8 @@ const BlogItems = ({blogData}) => {
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s"> <div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s">
{/* BLOG POST IMAGE */} {/* BLOG POST IMAGE */}
<div className="blog-post-img rounded"> <div className="blog-post-img rounded">
<img className="img-fluid rounded" src="assets/images/blog/post-1-img.jpg" alt="blog-post-image" /> {/* <img className="img-fluid rounded" src="assets/images/blog/post-1-img.jpg" alt="blog-post-image" /> */}
<img className="img-fluid rounded" src={process.env.REACT_APP_IMAGE_LINK + blog.meta_value} alt="blog-post-image" />
</div> </div>
{/* BLOG POST TEXT */} {/* BLOG POST TEXT */}
<div className="blog-post-txt"> <div className="blog-post-txt">
+2 -2
View File
@@ -45,10 +45,10 @@ class Footer extends React.Component {
</div> </div>
<div className="col-sm-6 col-md-8 col-lg-3"> <div className="col-sm-6 col-md-8 col-lg-3">
<div className="footer-store-badges text-right mb-40"> <div className="footer-store-badges text-right mb-40">
<Link to="/#" className="store"> <Link to={process.env.REACT_APP_APPLE_LINK} className="store">
<img className="appstore" src="assets/images/appstore.png" alt="appstore-badge" /> <img className="appstore" src="assets/images/appstore.png" alt="appstore-badge" />
</Link> </Link>
<Link to="/#" className="store"> <Link to={process.env.REACT_APP_GOOGLE_PLAY_LINK} className="store">
<img className="googleplay" src="assets/images/googleplay.png" alt="googleplay-badge" /> <img className="googleplay" src="assets/images/googleplay.png" alt="googleplay-badge" />
</Link> </Link>
</div> </div>
+6 -6
View File
@@ -1,18 +1,18 @@
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom/client';
import './index.css'; import './index.css';
import App from './App'; import App from './App';
import reportWebVitals from './reportWebVitals'; import reportWebVitals from './reportWebVitals';
import { BrowserRouter } from "react-router-dom"; import { BrowserRouter } from "react-router-dom";
ReactDOM.render( const rootElement = document.getElementById('root');
// basename='/usr/src/app/build' const root = ReactDOM.createRoot(rootElement);
root.render(
<BrowserRouter> <BrowserRouter>
<App /> <App />
</BrowserRouter>, </BrowserRouter>
document.getElementById('root')
); );
// If you want to start measuring performance in your app, pass a function // If you want to start measuring performance in your app, pass a function
+6 -21
View File
@@ -5,21 +5,16 @@ class About extends React.Component {
render() { render() {
return( return(
<div> <div>
{/* PRELOADER SPINNER */}
{/* PRELOADER SPINNER
============================================= */}
<div id="loader-wrapper"> <div id="loader-wrapper">
<div id="loading"> <div id="loading">
<span className="cssload-loader"><span className="cssload-loader-inner" /></span> <span className="cssload-loader"><span className="cssload-loader-inner" /></span>
</div> </div>
</div> </div>
{/* PAGE CONTENT {/* PAGE CONTENT */}
============================================= */}
<div id="page" className="page"> <div id="page" className="page">
{/* PAGE HERO {/* PAGE HERO */}
============================================= */}
<div id="about-page" className="rel purple_gradient bg_shape_01 page-hero-section division"> <div id="about-page" className="rel purple_gradient bg_shape_01 page-hero-section division">
<div className="container"> <div className="container">
<div className="row"> <div className="row">
@@ -34,8 +29,7 @@ class About extends React.Component {
</div> {/* End row */} </div> {/* End row */}
</div> {/* End container */} </div> {/* End container */}
</div> {/* END PAGE HERO */} </div> {/* END PAGE HERO */}
{/* ABOUT-2 {/* ABOUT-2 */}
============================================= */}
<div id="about-2" className="wide-90 about-section division"> <div id="about-2" className="wide-90 about-section division">
<div className="container"> <div className="container">
{/* TEXT BLOCK */} {/* TEXT BLOCK */}
@@ -112,10 +106,7 @@ class About extends React.Component {
</div> {/* END BUTTON */} </div> {/* END BUTTON */}
</div> {/* End container */} </div> {/* End container */}
</div> {/* END ABOUT-2 */} </div> {/* END ABOUT-2 */}
{/* TEAM-1 */}
{/* TEAM-1
============================================= */}
<section id="team-1" className="wide-60 team-section division"> <section id="team-1" className="wide-60 team-section division">
<div className="container"> <div className="container">
{/* SECTION TITLE */} {/* SECTION TITLE */}
@@ -133,8 +124,6 @@ class About extends React.Component {
<div className="team-members-holder pc-20 text-center"> <div className="team-members-holder pc-20 text-center">
<div className="row justify-content-center"> <div className="row justify-content-center">
{Testimonial.map(({name, title, image, link: {domain, href}}, idx) => ( {Testimonial.map(({name, title, image, link: {domain, href}}, idx) => (
<>
{/* TEAM MEMBER #1 */}
<div className="col-sm-6 col-lg-3" key={idx}> <div className="col-sm-6 col-lg-3" key={idx}>
<div className="team-member wow fadeInUp" data-wow-delay="0.4s"> <div className="team-member wow fadeInUp" data-wow-delay="0.4s">
{/* Team Member Photo */} {/* Team Member Photo */}
@@ -149,15 +138,12 @@ class About extends React.Component {
</div> </div>
</div> </div>
</div> </div>
{/* END TEAM MEMBER #1 */}
</>
))} ))}
</div> {/* End row */} </div> {/* End row */}
</div> {/* TEAM MEMBERS HOLDER */} </div> {/* TEAM MEMBERS HOLDER */}
</div> {/* End container */} </div> {/* End container */}
</section> {/* END TEAM-1 */} </section> {/* END TEAM-1 */}
{/* NEWSLETTER-1 {/* NEWSLETTER-1 */}
============================================= */}
<section id="newsletter-1" className="pb-20 newsletter-section division"> <section id="newsletter-1" className="pb-20 newsletter-section division">
<div className="container"> <div className="container">
<div className="newsletter-wrapper bg-white"> <div className="newsletter-wrapper bg-white">
@@ -188,7 +174,6 @@ class About extends React.Component {
</div> {/* End newsletter-holder */} </div> {/* End newsletter-holder */}
</div> {/* End container */} </div> {/* End container */}
</section> {/* END NEWSLETTER-1 */} </section> {/* END NEWSLETTER-1 */}
</div> {/* END PAGE CONTENT */} </div> {/* END PAGE CONTENT */}
</div> </div>
) )
+39 -29
View File
@@ -13,7 +13,7 @@ class Blog_listing extends React.Component {
} }
render() { render() {
// const [blogData, setBlogData] = useState([]) // for holding // const [blogData, setBlogData] = useState([]) // for holding
//const siteApi = new SiteService(); // instantiating the API SERVICE //const siteApi = new SiteService(); // instantiating the API SERVICE
@@ -53,35 +53,45 @@ class Blog_listing extends React.Component {
</div> </div>
</div> </div>
{/* FEATURED POST */} {/* FEATURED POST */}
<div className="rel blog-post featured-post wide-post"> {
<div className="row d-flex align-items-center"> this.props.blogData?.featured == undefined ? // API CALL IN PROGRESS
<div className="featured-badge text-center ico-30 bg_whitesmoke yellow-color"> <div className="text-center">
<span className="flaticon-star" /> <div className="spinner-border spinner-border-lg" role="status" style={{width: '3rem', height: '3rem'}}>
</div>
{/* BLOG POST IMAGE */}
<div className="col-lg-7 blog-post-img">
<img className="img-fluid" src="assets/images/blog/post-1-img.jpg" alt="blog-post-image" />
</div>
{/* BLOG POST TEXT */}
<div className="col-lg-5 blog-post-txt">
{/* Post Tag */}
<p className="p-md post-tag">NordEx News</p>
{/* Post Link */}
<h5 className="h5-xl">
<a href="single-post.html">Tempor sapien donec gravida a suscipit and porta justo vitae</a>
</h5>
{/* Text */}
<p className="p-md">Aliqum mullam blandit vitae and tempor sapien and donec lipsum gravida a porta
undo velna dolor in cubilia laoreet
</p>
{/* Post Meta */}
<div className="post-meta">
<div className="post-author-avatar"><img src="assets/images/post-author-1.jpg" alt="author-avatar" /></div>
<p>12 min read</p>
</div> </div>
</div> {/* END BLOG POST TEXT */} </div>
</div> {/* End row */} :
</div> {/* END FEATURED POST */} <div className="rel blog-post featured-post wide-post">
<div className="row d-flex align-items-center">
<div className="featured-badge text-center ico-30 bg_whitesmoke yellow-color">
<span className="flaticon-star" />
</div>
{/* BLOG POST IMAGE */}
<div className="col-lg-7 blog-post-img">
<img className="w-auto h-100" src={process.env.REACT_APP_IMAGE_LINK + this.props.blogData?.featured.meta_value} alt="blog-post-image" />
</div>
{/* BLOG POST TEXT */}
<div className="col-lg-5 blog-post-txt">
{/* Post Tag */}
<p className="p-2 post-tag">Float News</p>
{/* Post Link */}
<h5 className="h5-xl">
<a href="single-post.html">{this.props.blogData?.featured.post_title}</a>
</h5>
{/* Text */}
{/* <p className="p-md">Aliqum mullam blandit vitae and tempor sapien and donec lipsum gravida a porta
undo velna dolor in cubilia laoreet
</p> */}
<div className="p-2" dangerouslySetInnerHTML={{__html: this.props.blogData?.featured.post_content.substring(0,300)+' . . .'}}></div>
{/* Post Meta */}
<div className="post-meta">
<div className="post-author-avatar"><img src="assets/images/post-author-1.jpg" alt="author-avatar" /></div>
<p>12 min read</p>
</div>
</div> {/* END BLOG POST TEXT */}
</div> {/* End row */}
</div>
} {/* END FEATURED POST */}
{/* POSTS WRAPPER */} {/* POSTS WRAPPER */}
<div className="posts-wrapper"> <div className="posts-wrapper">
{/* BLOG POSTS CATEGORY */} {/* BLOG POSTS CATEGORY */}
+89 -18
View File
@@ -1,25 +1,94 @@
import React, {Component} from 'react'; import React, {Component, useState, useEffect} from 'react';
import SiteService from '../svs/SiteService';
class Contacts extends Component {
constructor(props){
super(props)
this.state = {
formData: {
name: '',
email: '',
country: '',
phone: '',
message: ''
},
loading: false,
submitError: null,
submitSuccess: false,
};
}
handleInputChange = (event) => {
const { name, value } = event.target;
this.setState((prevState) => ({
formData: {
...prevState.formData,
[name]: value,
},
}));
};
handleSubmit = async(e) => {
e.preventDefault();
const apiCall = new SiteService();
const { formData } = this.state;
this.setState({ loading: true });
if(!formData.name && !formData.email && !formData.message) return;
console.log(formData)
try {
await apiCall.contactData(formData)
console.log('Success')
this.setState({
formData: {
name: '',
email: '',
country: '',
phone: '',
message: ''
},
loading: false,
submitError: null,
submitSuccess: false,
});
// if(res.status == 200){
// } else {
// throw new Error('Error submitting form');
// }
} catch (error) {
this.setState({
loading: false,
submitSuccess: false,
submitError: error,
});
console.log(error)
}
}
class Contacts extends React.Component {
render() { render() {
const {formData, loading, submitError, submitSuccess} = this.state
console.log(submitSuccess)
return( return(
<div> <div>
{/* PRELOADER SPINNER */}
{/* PRELOADER SPINNER
============================================= */}
<div id="loader-wrapper"> <div id="loader-wrapper">
<div id="loading"> <div id="loading">
<span className="cssload-loader"><span className="cssload-loader-inner" /></span> <span className="cssload-loader"><span className="cssload-loader-inner" /></span>
</div> </div>
</div> </div>
{/* PAGE CONTENT {/* PAGE CONTENT */}
============================================= */}
<div id="page" className="page"> <div id="page" className="page">
{/* HEADER {/* HEADER */}
============================================= */} {/* CONTACTS-2 */}
{/* CONTACTS-2
============================================= */}
<section id="contacts-2" className="bg_whitesmoke hero-offset-nav pb-50 contacts-section division"> <section id="contacts-2" className="bg_whitesmoke hero-offset-nav pb-50 contacts-section division">
<div className="container"> <div className="container">
{/* SECTION TITLE */} {/* SECTION TITLE */}
@@ -39,7 +108,7 @@ class Contacts extends React.Component {
<div className="row"> <div className="row">
<div className="col-lg-10 col-xl-8 offset-lg-1 offset-xl-2"> <div className="col-lg-10 col-xl-8 offset-lg-1 offset-xl-2">
<div className="form-holder"> <div className="form-holder">
<form name="contactform" className="row contact-form"> <form name="contactform" className="row contact-form" onSubmit={this.handleSubmit}>
{/* Form Select */} {/* Form Select */}
<div id="input-subject" className="col-md-12 input-subject"> <div id="input-subject" className="col-md-12 input-subject">
<p className="p-lg">This question is about: </p> <p className="p-lg">This question is about: </p>
@@ -57,21 +126,23 @@ class Contacts extends React.Component {
<div id="input-name" className="col-md-12"> <div id="input-name" className="col-md-12">
<p className="p-lg">Your Name: </p> <p className="p-lg">Your Name: </p>
<span>Please enter your real name: </span> <span>Please enter your real name: </span>
<input type="text" name="name" className="form-control name" placeholder="Your Name*" /> <input type="text" name="name" className="form-control name" placeholder="Your Name*" value={formData.name} onChange={this.handleInputChange} />
</div> </div>
<div id="input-email" className="col-md-12"> <div id="input-email" className="col-md-12">
<p className="p-lg">Your Email Address: </p> <p className="p-lg">Your Email Address: </p>
<span>Please carefully check your email address for accuracy</span> <span>Please carefully check your email address for accuracy</span>
<input type="text" name="email" className="form-control email" placeholder="Email Address*" /> <input type="text" name="email" className="form-control email" placeholder="Email Address*" value={formData.email} onChange={this.handleInputChange} />
</div> </div>
<div id="input-message" className="col-md-12 input-message"> <div id="input-message" className="col-md-12 input-message">
<p className="p-lg">Explain your question in details: </p> <p className="p-lg">Explain your question in details: </p>
<span>Your OS version, NordEx version &amp; build, steps you did. Be VERY precise!</span> <span>Your OS version, steps you did. Be VERY precise!</span>
<textarea className="form-control message" name="message" rows={6} placeholder="I have a problem with..." defaultValue={""} /> <textarea className="form-control message" name="message" rows={6} placeholder="I have a problem with..." value={formData.message} onChange={this.handleInputChange} />
</div> </div>
{/* Contact Form Button */} {/* Contact Form Button */}
<div className="col-md-12 mt-15 form-btn text-right"> <div className="col-md-12 mt-15 form-btn text-right">
<button type="submit" className="btn btn-skyblue tra-skyblue-hover submit">Submit Request</button> <button type="submit" className="btn btn-skyblue tra-skyblue-hover submit" disabled={loading}>
{loading ? 'Submitting...' : 'Submit Request'}
</button>
</div> </div>
{/* Contact Form Message */} {/* Contact Form Message */}
<div className="col-lg-12 contact-form-msg"> <div className="col-lg-12 contact-form-msg">
+38 -132
View File
@@ -1,26 +1,25 @@
import React, {Component} from 'react'; import React, {Component, useState} from 'react';
class Faqs extends Component {
constructor(props){
super(props)
}
class Faqs extends React.Component {
render() { render() {
const data = this.props.faqData
return( return(
<div> <div>
{/* PRELOADER SPINNER */}
{/* PRELOADER SPINNER */}
{/* PRELOADER SPINNER
============================================= */}
<div id="loader-wrapper"> <div id="loader-wrapper">
<div id="loading"> <div id="loading">
<span className="cssload-loader"><span className="cssload-loader-inner" /></span> <span className="cssload-loader"><span className="cssload-loader-inner" /></span>
</div> </div>
</div> </div>
{/* PAGE CONTENT {/* PAGE CONTENT */}
============================================= */}
<div id="page" className="page"> <div id="page" className="page">
{/* HEADER {/* HEADER */}
============================================= */} {/* FAQs-2 */}
{/* FAQs-2
============================================= */}
<section id="faqs-2" className="bg_whitesmoke hero-offset-nav pb-100 faqs-section division"> <section id="faqs-2" className="bg_whitesmoke hero-offset-nav pb-100 faqs-section division">
<div className="container"> <div className="container">
{/* SECTION TITLE */} {/* SECTION TITLE */}
@@ -42,128 +41,40 @@ class Faqs extends React.Component {
{/* QUESTIONS HOLDER */} {/* QUESTIONS HOLDER */}
<div className="col-lg-6"> <div className="col-lg-6">
<div className="questions-holder pc-10"> <div className="questions-holder pc-10">
{/* QUESTION #1 */}
<div className="question wow fadeInUp" data-wow-delay="0.4s"> {data.map((item, idx) => {
let delay = 0.2
if(idx % 2 === 0){
delay *= Math.floor(idx / 2); // multiply delay by 2 for every odd idx
return (
<div className="question wow fadeInUp" data-wow-delay={delay} key={idx}>
{/* Question */} {/* Question */}
<h5 className="h5-sm">How do I get started?</h5> <h5 className="h5-sm">{item.title}</h5>
{/* Answer */} {/* Answer */}
<ul className="simple-list"> <p className="p-lg">{item.text}</p>
<li className="list-item">
<p className="p-lg">Fringilla risus, luctus mauris orci auctor purus</p>
</li>
<li className="list-item">
<p className="p-lg">Quaerat sodales sapien euismod blandit purus and ipsum primis in cubilia laoreet
augue luctus
</p>
</li>
</ul>
</div>
{/* QUESTION #2 */}
<div className="question wow fadeInUp" data-wow-delay="0.6s">
{/* Question */}
<h5 className="h5-sm">Can I see Float in action before purchasing it?</h5>
{/* Answer */}
<p className="p-lg">Etiam amet mauris suscipit in odio integer congue metus vitae arcu mollis blandit
ultrice ligula egestas and magna suscipit lectus magna suscipit luctus blandit vitae
</p>
</div>
{/* QUESTION #3 */}
<div className="question wow fadeInUp" data-wow-delay="0.8s">
{/* Question */}
<h5 className="h5-sm">What are the requirements for using Float?</h5>
{/* Answer */}
<p className="p-lg">An enim nullam tempor sapien gravida donec ipsum enim an porta justo integer at velna
vitae auctor integer congue undo magna at pretium purus pretium ligula
</p>
</div>
{/* QUESTION #4 */}
<div className="question wow fadeInUp" data-wow-delay="1s">
{/* Question */}
<h5 className="h5-sm">Can I use Float on different devices?</h5>
{/* Answer */}
<ul className="simple-list">
<li className="list-item">
<p className="p-lg">Fringilla risus, luctus mauris orci auctor purus ligula euismod pretium purus
pretium rutrum tempor sapien
</p>
</li>
<li className="list-item">
<p className="p-lg">Nemo ipsam egestas volute turpis dolores ut aliquam quaerat sodales sapien undo
pretium a purus
</p>
</li>
</ul>
</div>
{/* QUESTION #5 */}
<div className="question wow fadeInUp" data-wow-delay="1.2s">
{/* Question */}
<h5 className="h5-sm">Do you have a free trial?</h5>
{/* Answer */}
<p className="p-lg">Cubilia laoreet augue egestas and luctus donec curabite diam vitae dapibus libero and
quisque gravida donec neque. Blandit justo aliquam molestie nunc sapien justo
</p>
</div> </div>
)
}
})}
</div> </div>
</div> {/* END QUESTIONS HOLDER */} </div> {/* END QUESTIONS HOLDER */}
{/* QUESTIONS HOLDER */} {/* QUESTIONS HOLDER */}
<div className="col-lg-6"> <div className="col-lg-6">
<div className="questions-holder pc-10"> <div className="questions-holder pc-10">
{/* QUESTION #6 */} {data.map((item, idx) => {
<div className="question wow fadeInUp" data-wow-delay="0.4s"> let delay = 0.2
if(idx % 2 === 1){
delay *= Math.floor(idx / 2); // multiply delay by 2 for every even idx
return (
<div className="question wow fadeInUp" data-wow-delay={delay} key={idx}>
{/* Question */} {/* Question */}
<h5 className="h5-sm">Troubles with verification</h5> <h5 className="h5-sm">{item.title}</h5>
{/* Answer */} {/* Answer */}
<p className="p-lg">Cubilia laoreet augue egestas and luctus donec curabite diam vitae dapibus libero and <p className="p-lg">{item.text}</p>
quisque gravida donec neque. Blandit justo aliquam molestie nunc sapien justo
</p>
</div>
{/* QUESTION #7 */}
<div className="question wow fadeInUp" data-wow-delay="0.6s">
{/* Question */}
<h5 className="h5-sm">How does Float handle my privacy?</h5>
{/* Answer */}
<p className="p-lg">Etiam amet mauris suscipit sit amet in odio. Integer congue leo metus. Vitae arcu mollis
blandit ultrice ligula
</p>
{/* Answer */}
<p className="p-lg">An enim nullam tempor sapien gravida donec congue leo metus. Vitae arcu mollis blandit
integer at velna
</p>
</div>
{/* QUESTION #8 */}
<div className="question wow fadeInUp" data-wow-delay="0.8s">
{/* Question */}
<h5 className="h5-sm">I have an issue with my account</h5>
{/* Answer */}
<ul className="simple-list">
<li className="list-item">
<p className="p-lg">Fringilla risus, luctus mauris orci auctor purus</p>
</li>
<li className="list-item">
<p className="p-lg">Quaerat sodales sapien euismod blandit purus and ipsum primis in cubilia laoreet
augue luctus
</p>
</li>
</ul>
</div>
{/* QUESTION #9 */}
<div className="question wow fadeInUp" data-wow-delay="1s">
{/* Question */}
<h5 className="h5-sm">What is the Float Membership?</h5>
{/* Answer */}
<p className="p-lg">Etiam amet mauris suscipit in odio integer congue metus vitae arcu mollis blandit
ultrice ligula egestas and magna suscipit lectus magna suscipit luctus blandit vitae
</p>
</div>
{/* QUESTION #10 */}
<div className="question wow fadeInUp" data-wow-delay="1.2s">
{/* Question */}
<h5 className="h5-sm">How do I cancel my Membership?</h5>
{/* Answer */}
<p className="p-lg">An enim nullam tempor sapien gravida donec ipsum enim an porta justo integer at velna
vitae auctor integer congue undo magna at pretium purus pretium ligula
</p>
</div> </div>
)
}
})}
</div> </div>
</div> {/* END QUESTIONS HOLDER */} </div> {/* END QUESTIONS HOLDER */}
</div> {/* End row */} </div> {/* End row */}
@@ -182,8 +93,7 @@ class Faqs extends React.Component {
{/* GEOMETRIC OVERLAY */} {/* GEOMETRIC OVERLAY */}
<div className="bg_fixed geometric_overlay" /> <div className="bg_fixed geometric_overlay" />
</section> {/* END FAQs-2 */} </section> {/* END FAQs-2 */}
{/* DOWNLOAD-2 {/* DOWNLOAD-2 */}
============================================= */}
<section id="download-2" className="bg_whitesmoke pb-20 download-section division"> <section id="download-2" className="bg_whitesmoke pb-20 download-section division">
<div className="container white-color"> <div className="container white-color">
<div className="rel purple_gradient bg_shape_01 downloads-2-wrapper"> <div className="rel purple_gradient bg_shape_01 downloads-2-wrapper">
@@ -206,11 +116,11 @@ class Faqs extends React.Component {
<div className="col-lg-5 text-right"> <div className="col-lg-5 text-right">
<div className="stores-badge"> <div className="stores-badge">
{/* AppStore */} {/* AppStore */}
<a href="#" className="store"> <a href={process.env.REACT_APP_APPLE_LINK} className="store">
<img className="appstore" src="assets/images/appstore-white.png" alt="appstore-logo" /> <img className="appstore" src="assets/images/appstore-white.png" alt="appstore-logo" />
</a> </a>
{/* Google Play */} {/* Google Play */}
<a href="#" className="store"> <a href={process.env.REACT_APP_GOOGLE_PLAY_LINK} className="store">
<img className="googleplay" src="assets/images/googleplay-white.png" alt="googleplay-logo" /> <img className="googleplay" src="assets/images/googleplay-white.png" alt="googleplay-logo" />
</a> </a>
</div> </div>
@@ -219,11 +129,7 @@ class Faqs extends React.Component {
</div> {/* End row */} </div> {/* End row */}
</div> {/* End container */} </div> {/* End container */}
</section> {/* END DOWNLOAD-2 */} </section> {/* END DOWNLOAD-2 */}
</div> {/* END PAGE CONTENT */} </div> {/* END PAGE CONTENT */}
</div> </div>
) )
} }
+35 -98
View File
@@ -27,6 +27,8 @@ class FloatHome extends React.Component {
} }
render() { render() {
const faqData = this.props.faqData
console.log(faqData)
return( return(
<div> <div>
{/* PRELOADER SPINNER ============================================= */} {/* PRELOADER SPINNER ============================================= */}
@@ -882,114 +884,49 @@ class FloatHome extends React.Component {
{/* QUESTIONS ACCORDION */} {/* QUESTIONS ACCORDION */}
<div className="col-lg-8"> <div className="col-lg-8">
<div id="accordion" role="tablist" className="pc-20"> <div id="accordion" role="tablist" className="pc-20">
{/* QUESTION #1 */} {faqData.map((item, idx) => {
<div className="card grey-color"> if(idx == 0){
return(
<div className="card grey-color" key={idx}>
{/* Question */}
<div className="card-header" role="tab" id="headingOne">
<h5 className="h5-sm">
<a data-toggle="collapse" href="#collapseOne" role="button" aria-expanded="true" aria-controls="collapseOne">
{item.title}
</a>
</h5>
</div>
{/* Answer */}
<div id="collapseOne" className="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
<div className="card-body">
{/* Text */}
<p className="p-lg">{item.text}</p>
</div>
</div>
</div>
)
}else{
return(
<div className="card grey-color" key={idx}>
{/* Question */} {/* Question */}
<div className="card-header" role="tab" id="headingOne"> <div className="card-header" role="tab" id={`heading${idx}`}>
<h5 className="h5-sm"> <h5 className="h5-sm">
<a data-toggle="collapse" href="#collapseOne" role="button" aria-expanded="true" aria-controls="collapseOne"> <a className="collapsed" data-toggle="collapse" href={`#collapse${idx}`} role="button" aria-expanded="false" aria-controls={`collapse${idx}`}>
Can I see Float in action before purchasing it? {item.title}
</a> </a>
</h5> </h5>
</div> </div>
{/* Answer */} {/* Answer */}
<div id="collapseOne" className="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion"> <div id={`collapse${idx}`} className="collapse" role="tabpanel" aria-labelledby={`heading${idx}`} data-parent="#accordion">
<div className="card-body"> <div className="card-body">
{/* Text */} {/* Text */}
<p className="p-lg">Maecenas gravida porttitor quis vehicula magna luctus tempor. Quisque vel laoreet <p className="p-lg">{item.text}</p>
turpis. Viverra urna augue, a augue dictum tempor. Sed pulvinar nibh consectetur varius viverra.
Laoreet augue ac massa lorem nulla
</p>
</div> </div>
</div> </div>
</div> {/* END QUESTION #1 */} </div>
{/* QUESTION #2 */} )
<div className="card grey-color"> }
{/* Question */} })}
<div className="card-header" role="tab" id="headingTwo">
<h5 className="h5-sm">
<a className="collapsed" data-toggle="collapse" href="#collapseTwo" role="button" aria-expanded="false" aria-controls="collapseTwo">
Ive got iPhone 5. Is Float compatible with it?
</a>
</h5>
</div>
{/* Answer */}
<div id="collapseTwo" className="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion">
<div className="card-body">
{/* Text */}
<p className="p-lg">Sagittis congue augue egestas volutpat egestas magna suscipit egestas magna ipsum
vitae purus an efficitur ipsum primis in cubilia laoreet augue egestas luctus donec curabitur
dapibus libero tempor
</p>
</div>
</div>
</div> {/* END QUESTION #2 */}
{/* QUESTION #3 */}
<div className="card grey-color">
{/* Question */}
<div className="card-header" role="tab" id="headingThree">
<h5 className="h5-sm">
<a className="collapsed" data-toggle="collapse" href="#collapseThree" role="button" aria-expanded="false" aria-controls="collapseThree">
What are the requirements for using Float?
</a>
</h5>
</div>
{/* Answer */}
<div id="collapseThree" className="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion">
<div className="card-body">
{/* Text */}
<p className="p-lg">Sagittis congue augue egestas volutpat egestas magna suscipit egestas and magna
ipsum vitae purus and efficitur ipsum primis in cubilia laoreet
</p>
{/* Text */}
<p className="p-lg">Sapien egestas, congue gestas posuere cubilia congue ipsum mauris lectus laoreet
gestas neque vitae auctor eros dolor luctus placerat a magna cursus congue magna nihil mpedit
ligula sem congue tempor gravida
</p>
</div>
</div>
</div> {/* END QUESTION #3 */}
{/* QUESTION #4 */}
<div className="card grey-color">
{/* Question */}
<div className="card-header" role="tab" id="headingFour">
<h5 className="h5-sm">
<a className="collapsed" data-toggle="collapse" href="#collapseFour" role="button" aria-expanded="false" aria-controls="collapseFour">
How does Float handle my privacy?
</a>
</h5>
</div>
{/* Answer */}
<div id="collapseFour" className="collapse" role="tabpanel" aria-labelledby="headingFour" data-parent="#accordion">
<div className="card-body">
{/* Text */}
<p className="p-lg">An augue cubilia laoreet and magna suscipit egestas magna ipsum purus ipsum primis
and augue ultrice ligula egestas suscipit lectus gestas integer congue a lectus porta tristique phasellus neque blandit and tristique
</p>
</div>
</div>
</div> {/* END QUESTION #4 */}
{/* QUESTION #5 */}
<div className="card last-card grey-color">
{/* Question */}
<div className="card-header" role="tab" id="headingFive">
<h5 className="h5-sm">
<a className="collapsed" data-toggle="collapse" href="#collapseFive" role="button" aria-expanded="false" aria-controls="collapseFive">
How can I cancel my account?
</a>
</h5>
</div>
{/* Answer */}
<div id="collapseFive" className="collapse" role="tabpanel" aria-labelledby="headingFive" data-parent="#accordion">
<div className="card-body">
{/* Text */}
<p className="p-lg">Curabitur ac dapibus libero. Quisque eu congue tristique neque. Phasellus blandit
tristique justo undo aliquam. Aliquam vitae molestie nunc. Quisque sapien justo, aliquet non
molestie sed purus, venenatis sem tempor
</p>
</div>
</div>
</div> {/* END QUESTION #5 */}
</div> {/* END ACCORDION */} </div> {/* END ACCORDION */}
{/* MORE QUESTIONS BUTTON */} {/* MORE QUESTIONS BUTTON */}
<div className="more-questions pc-20 mt-35"> <div className="more-questions pc-20 mt-35">
+2 -2
View File
@@ -50,13 +50,13 @@ export const Testimonial = [
} }
}, },
{ {
name: 'Chelse Smith', name: 'Toks Law',
title: 'Project Management', title: 'Project Management',
desc: 'Chelsea has just moved into a new house in central Auckland, NZ so she can be closer to EVERYTHING; restaurants, bars and public transport. She loves exploring the many transit options that come with the new territory.', desc: 'Chelsea has just moved into a new house in central Auckland, NZ so she can be closer to EVERYTHING; restaurants, bars and public transport. She loves exploring the many transit options that come with the new territory.',
image: 'assets/images/team-8.jpg', image: 'assets/images/team-8.jpg',
link: { link: {
href: '#', href: '#',
domain: 'matthewanderson' domain: 'tokslaw'
} }
} }
] ]
+1 -1
View File
@@ -8,7 +8,7 @@ class SiteService {
} }
// Blog Data {Get} // Blog Data {Get}
blogData() { blogData() {
return this.getAuxEnd("/blogdata/10", null); return this.getAuxEnd("/blogdata", null);
} }
// Country Data {GET} // Country Data {GET}