Compare commits
109 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7259889c3a | |||
| e0e3f77e59 | |||
| 1a521ab308 | |||
| e0a4517ffc | |||
| 59a4d3009b | |||
| 391c0a7eaa | |||
| 5dbe5f0b5a | |||
| 0f7e2a6bdb | |||
| 07031203ee | |||
| 477f47ef80 | |||
| dc26150ac4 | |||
| d81157f5ea | |||
| 01d93f9054 | |||
| ab1618cdab | |||
| bc2e6f36b4 | |||
| 43fa698c43 | |||
| 8d12fc6445 | |||
| cfa177eaa9 | |||
| 186bfa6d8f | |||
| 1428ddd925 | |||
| 163a29698f | |||
| f652304468 | |||
| 929a1b316f | |||
| a9f382eef7 | |||
| dfdb881db7 | |||
| 202132e7a5 | |||
| f6c803024c | |||
| b1a0cbab6b | |||
| c2b4273512 | |||
| 3272b60965 | |||
| 4695e934e6 | |||
| dee383efb5 | |||
| 43b79a7aa6 | |||
| 5bc8ef4667 | |||
| cfceddeecc | |||
| 3bbccea32d | |||
| be42244ce7 | |||
| 80711232a3 | |||
| a29fcffc2e | |||
| 5295ad32f2 | |||
| e9044ed10f | |||
| c783cb8926 | |||
| 0b74697fd1 | |||
| c0c71ab005 | |||
| a8711636a2 | |||
| c8a96ccbdc | |||
| d626f28e36 | |||
| e2185c9d1a | |||
| c7e7874d49 | |||
| ef6374e407 | |||
| a69e903785 | |||
| fa2ac7d3d0 | |||
| 300f5f0dab | |||
| 5609bc9c99 | |||
| bddf76320b | |||
| 9da5f450a2 | |||
| 6c1e2072c8 | |||
| 3594000fbe | |||
| 7cbc26a787 | |||
| 2ed1862b53 | |||
| e64d1f84ed | |||
| e383366603 | |||
| 7d9267e268 | |||
| 129c0f1447 | |||
| 7e424c269b | |||
| cfcfaaca05 | |||
| 323ee50705 | |||
| 6ff8f81fb8 | |||
| 360f60c1f2 | |||
| d3500e1640 | |||
| 451190b705 | |||
| ee1bd901b1 | |||
| bb7e745491 | |||
| 9c6f84d3b8 | |||
| 3604da9092 | |||
| 5699af8492 | |||
| 6a35044ee9 | |||
| 376e84ce32 | |||
| 41440b1c66 | |||
| 51b080c2b0 | |||
| a881c75895 | |||
| 731c5041ac | |||
| 9e49493551 | |||
| 0cf92f3529 | |||
| f4fd8c5249 | |||
| d8b1d8b035 | |||
| 72dff33e6f | |||
| cfd416b59a | |||
| ebf4f138a2 | |||
| b5a532d489 | |||
| 304fd79eb8 | |||
| 2862b88961 | |||
| 375058405c | |||
| 1d6f112d58 | |||
| 3d909625d3 | |||
| d1be17ccfa | |||
| 994613a5fa | |||
| 87e42238be | |||
| d4d4ac482f | |||
| a23d05ad82 | |||
| ad3314dceb | |||
| d947a24043 | |||
| 95ecc0d3d8 | |||
| 10f84c5d74 | |||
| 0430e0d27d | |||
| 84a57f5141 | |||
| a8e0a8aa46 | |||
| ea6cefdbae | |||
| 12207f6d1e |
@@ -1,2 +1,13 @@
|
||||
REACT_APP_APPSITE='http://welcome.float.sg'
|
||||
REACT_APP_EMAIL='support@float.sg'
|
||||
REACT_APP_EMAIL='support@float.sg'
|
||||
REACT_APP_WWW='http://float-www.dev.chiefsoft.net'
|
||||
REACT_APP_FLEET='http://float-flt.dev.chiefsoft.net'
|
||||
REACT_APP_USERS='http://float-usr.dev.chiefsoft.net'
|
||||
REACT_APP_APIGATE='http://float-gat.dev.chiefsoft.net'
|
||||
|
||||
REACT_APP_APPLE_LINK='https://apps.apple.com/us/app/float-mobility/id1465369130'
|
||||
REACT_APP_GOOGLE_PLAY_LINK='https://apps.apple.com/us/app/float-mobility/id1465369130'
|
||||
|
||||
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/'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wwww-float",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@reduxjs/toolkit": "^1.8.2",
|
||||
|
||||
@@ -738,8 +738,8 @@
|
||||
|
||||
#content-14.aliceblue-shape, #content-14.whitesmoke-shape { padding-top: 80px; }
|
||||
|
||||
.content-section .img-block.left-column, .content-5-img { position: relative; left: -60%; }
|
||||
.content-section .img-block img, .content-5-img img, .content-6-img img { display: inline-block; max-width: none; width: 160%; }
|
||||
/* .content-section .img-block.left-column, .content-5-img { position: relative; left: -60%; } */
|
||||
/* .content-section .img-block img, .content-5-img img, .content-6-img img { display: inline-block; max-width: none; width: 160%; } */
|
||||
.content-12-img { margin-right: 0; margin-bottom: -40px; }
|
||||
|
||||
.cbox-txt { padding-left: 20px; }
|
||||
|
||||
@@ -415,7 +415,7 @@ p {
|
||||
}
|
||||
|
||||
.bg_chat { background-image: linear-gradient(to bottom, rgba(34, 34, 34, 0.52), rgba(49, 46, 48, 0.73)),url(../images/personwithbackpack.png); background-attachment: scroll!important; background-position: top; }
|
||||
.bg_fit_01 { background-image: url(../images/bg_fit_01.jpg); background-attachment: scroll!important; }
|
||||
.bg_fit_01 { background-image: url(../images/bg_sblue_img.jpg); background-attachment: scroll!important; }
|
||||
/* .bg_fit_02 { background-image: url(../images/bg_fit_02.jpg); } */
|
||||
.bg_fit_02 { background-image: url(../images/bg_fit_02.png); } /*changed image*/
|
||||
.bg_mobile { background-image: url(../images/bg_mobile.jpg); background-attachment: scroll!important; }
|
||||
@@ -1331,6 +1331,10 @@ ol.digit-list p {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.stores-badge + div{
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.store {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
@@ -2580,6 +2584,15 @@ h5.sm-title {
|
||||
padding-right: 25px;
|
||||
}
|
||||
|
||||
.hero-8-txt > div {
|
||||
margin-top: 5rem;
|
||||
}
|
||||
|
||||
.hero-8-txt.fadeInRight{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/*------------------------------------------*/
|
||||
/* HERO APP LOGO
|
||||
/*------------------------------------------*/
|
||||
@@ -2632,7 +2645,7 @@ h5.sm-title {
|
||||
}
|
||||
|
||||
.hero-5-btns h3 {
|
||||
margin-bottom: 30px;
|
||||
margin-bottom: 6rem;
|
||||
}
|
||||
|
||||
.hero-6-txt h2 {
|
||||
@@ -2649,16 +2662,16 @@ h5.sm-title {
|
||||
}
|
||||
|
||||
.hero-8-txt h2 {
|
||||
margin-top: 3rem;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.hero-8-txt h4 {
|
||||
margin-bottom: 18px;
|
||||
margin-bottom: 80px;
|
||||
}
|
||||
|
||||
.hero-8-txt h5 {
|
||||
font-weight: 300;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.hero-9-txt h4 {
|
||||
@@ -3803,12 +3816,17 @@ h2.statistic-number {
|
||||
-webkit-box-shadow: 0px 5px 10px 0 rgba(10, 10, 10, .05);
|
||||
box-shadow: 0px 5px 10px 0 rgba(10, 10, 10, .05);
|
||||
}
|
||||
.pricing-table{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#pricing-1.bg_whitesmoke .pricing-plan,
|
||||
#pricing-3.bg_whitesmoke .pricing-plan {
|
||||
background-color: #fafafa!important;
|
||||
}
|
||||
|
||||
#pricing-2{display: none;}
|
||||
|
||||
#pricing-2 .pricing-plan {
|
||||
padding: 45px 40px 40px;
|
||||
border: 1px solid #ddd;
|
||||
@@ -4696,8 +4714,8 @@ h5.posts-category {
|
||||
.featured-badge {
|
||||
z-index: 70;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
-webkit-border-radius: 100%;
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 332 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="150" height="147" viewBox="0 0 150 147" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<rect width="150" height="146.165" fill="url(#pattern0)"/>
|
||||
<defs>
|
||||
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
|
||||
<use xlink:href="#image0_125_2" transform="matrix(0.031321 0 0 0.0321429 -1.84091 0.031013)"/>
|
||||
</pattern>
|
||||
<image id="image0_125_2" width="160" height="29" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAAdCAYAAAAtm2eGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAgLSURBVHgB7VxdaxRnFD7nfTdaS8FZY69dMd7HX5Ax/oCuF14nXhSk1I+UUuyVK70RWkzEG6GFbP5BQmmhFJrtH2hzX4sbKHhTyQpSse47p+f9mpkk75r9mOhsNw+uk/ncryfnOc85Z4Izp+YbUAC6SdJsd1ptGBAzp+JbACIq6nqTgHPTcR1JzAZ3iqT1+O9WCwpELYqjihC34BBQAYQ7UAAqAC1etGFAEIqbyO+xqOsVhadX7s8RqbpAiFEkNf5iT6JQyD93AJItkGqrgrBeXf3qV3jrEMv8vdWCuwjnwH52RSIqiid7UYEj7MLTy/cXEKFBlNSEAAImHWACKIgQiQApYjLGvIwTTG4++/j2NoG6e/rbr5vwFnA+imcJepDPAGMdsVg9OjAGOCKgw9P6co0QVkFQzAQDNKRLkNd5b6KlDckS0ezTxzAxNTmZqLS688lnc5Akd6uPVtpwiEikUYw3wsllA8YAAo4Af9WXZ5lVvzG5YhvlUoKx8iSEMiUkL5XZp4mYLvXxSIswRZs7167V4HARH3gE0hyMCSaegDrycZ63ySSKLPE4z0Mrt5Zkfj0hE/kkq7LQJLVE5P28zvuEIl7W8LjY3Ll1OCScOR3H+Eb59cD4bDR/BsYAPSW4q5KzMBjGIufIw8nuJstsBC7CGVJBKq8m9zN5oIt0TEazz0gxP4iPJZZnwQTVEs3LM3wsk3DxQnWlWehnQiQWDpJfDyngKhQkw64a8cannpmep9D2g3hUOeBJ/++4w4bjjCMW6TwPMZNXJ8WWbKgo/RmUJhsTVEdDfy4HQU1IzhS1axbyUPKwuO8jSyLDB/FoYiVYRz+W00WT1+mHtG7XympGRPvgKOciIrH0kjQkAy27moRgzIqOnIrQGRgp6AZHwQgKQi/5Zcqv8X+BSIvxTBTHUHJMbg4okzs6cpGt7QGkJkPne8rJrbKmA0x+Z3JC4XJBPpasFFvSmm3SRkq3rVp5v1tY8VbLb2g7/w6s8JNuBU8SIoaSYyIJ+KS+zDkfLUCOfJZwjoSGbGZdS6vLDZl3RobJnUMuL1RenlO5BktSkpJuQHGI927gX5/2H53WFuooGACnFwtQckwkAd+rdGfRyaav6ZlCs3W16MmVJ6chmpNryIhqI6EjJ6Y5o7m2luzoRePKLIyIc9OX6kH3i7ihF69Vsh6SYV2wLrsM9zQh/faIx7Fnyx2OOfKyiV5KdS5Hrq6nwEc5RzL0ble7YJf7oSVctkydNPjoqYkImoBbMBLoo+D7UElTL3XX49ypixv8AvZFPJKiDsW35gpD705In72/d92zHQqiW0OkrJuRRjVPPl9cNnmfiYYCErKRMUc2Q17l5dkS2EdMoUzJRqIauR7Hl6nvK4IQbWn5TY8R1GSHtI+AfJrediiDBEVgIiU4QWXl10mvMRYmuqndEdDKKJ+RroPPDc26dBERMwk37Tqp5Zj/yYTNC4yE89Pzi8yigJvGXXlft8tRNuiGISqzDE8kATUpcpHKk5GyXI/SiChMh4NyLtlGzVS+pYugtnRDXp6z6NqFUcDPHJRfTn3W8+tahrkksxG8hpXhUmIyCYj0JBcBXR3Py2viSynG2eqIRsIZEFDkSJavF5IrzdicDzNDYt20asOQ0FMtvNhPHpbfUN5tZDgAJ8OlRM8ckPrM6/ptDZUJhP9uc+/MGwaT5/kSiy2tEHop1p0Ostt87kco9VWyTgk48hnCoZ6a4UtK27JTCW7DkJjiyBXsbyF0giYxgV5fiJHhx51iB1WLQE8C/vnsl0F7wWODKSnXlVCraPu36KOXNRW0qzANJsdT4CKbJSFkfeNc6UWbDhNFRVak7pz44ocWDAkyrjZEQYyZaDEMgLK64YmU4Gqz0QHstrLCceZg09qfsNtsjkepXKcDC6mEK8pcs0oL2ta80DoMCZbfGp8fQ0EoqwxPbCuOZfJuaiwkGFNB0k/AGBdrOxygyG/LDar6+qGT67QTknVN2AFPieGHEVh+YygWpXTDE0vAD7+712KytHJ9XzLDp8bF+h6vJpKeckkLzpSX3dzgKu6KnqZ/nKzh5z8Onf9RoKg8KviNlC4KlnYkn3OWmpWh/jBMNwahe5Ut8e9MnpO2x+vMhu1s8C49duWMh5mGUb4/jNkwQlqiMbVEZ0i2p47LBgyJnvLLdT5+NX3NGAYnZxDqfO2lMt0vUloC8ge4WpH9BWi0jn1g06Tv39i5fn2JSbfq7vVw7TObD5Jxvc54pJEvI1/aQZFuWtpK9fNXgi4f+/SnUdxvHLIe/CrW2Bz21dWYmb60GSBxxF+4bg22oCSY+JH86sOHTRI6EmZ1PcAsn9NF66zOZ+TYREO7L70nxMtxh8l38YOln0fq/XLYvRna7nu/fQEpeLto2WT46KYkRnXlUTNh4jCB2iB2T73odW1O9I1JQtqyDeRHuEzP15Bvmx8jk8/IL9K+CRo/egV9otsNk9XJcGGDsqPiiIAO1W8etZR8fZEd8QNjKEzXw3Y+bF3PT7uQy/fSXLHDUt2YEq8uHBuRfBoVAcG2Ge7p/R4EmxNjK7ArkiVqzR3dF5xD9V6zzYull7cXH6gKxtwDXmCSzaZ3zPmxfEie874t/mn92It/1rBRZFIvg8VnPfYGg0LLMO0vWCOQluEmlAAVTuCvwjtFsoSBvw0z0BUAC3V1JywRm+4BLxv1ml6Srq4cRzjx5fdtOARYaaQNJs3eoYLOMC6fZXilEhzHKfbzMlcckkf/AeKBXuZb8fncAAAAAElFTkSuQmCC"/>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -58,7 +58,7 @@
|
||||
$target = jQuery(target);
|
||||
|
||||
$('html, body').stop().animate({
|
||||
'scrollTop': $target.offset().top - 60 // - 200px (nav-height)
|
||||
'scrollTop': $target.offset()?.top - 60 // - 200px (nav-height)
|
||||
}, 'slow', 'easeInSine', function () {
|
||||
window.location.hash = '1' + target;
|
||||
});
|
||||
@@ -170,7 +170,7 @@
|
||||
patterns: {
|
||||
youtube: {
|
||||
index: 'youtube.com',
|
||||
src: 'https://www.youtube.com/embed/7e90gBu4pas'
|
||||
src: 'https://www.youtube.com/embed/Jn22jdQ4KdQ' // added the id of the video
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
|
||||
<meta name="author" content="Float Mobility">
|
||||
<meta name="description" content="Travel smarter with Float's ride sharing, hailing and budgeting app. Avaliable on IOS and Android." />
|
||||
<meta name="title" content="Ride Sharing, Hailing & Budgeting App by Float" />
|
||||
@@ -54,8 +53,8 @@
|
||||
<!-- RESPONSIVE CSS -->
|
||||
<link href="/assets/css/responsive.css" rel="stylesheet">
|
||||
|
||||
|
||||
<title>Float</title>
|
||||
|
||||
<title> Ride Sharing, Hailing & Budgeting App by Float</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
@@ -79,5 +78,24 @@
|
||||
<script src="/assets/js/wow.js"></script>
|
||||
<!-- Custom Script -->
|
||||
<script src="/assets/js/custom.js"></script>
|
||||
<script>
|
||||
function initFreshChat() {
|
||||
window.fcWidget.init({
|
||||
token: "e14dfaf8-473b-4882-a83f-e88f192f763d",
|
||||
host: "https://wchat.freshchat.com"
|
||||
});
|
||||
}
|
||||
function initialize(i,t){
|
||||
var e;
|
||||
i.getElementById(t) ? initFreshChat() :
|
||||
((e=i.createElement("script")).id=t,
|
||||
e.async=!0,e.src="https://wchat.freshchat.com/js/widget.js",
|
||||
e.onload=initFreshChat,i.head.appendChild(e))
|
||||
}
|
||||
function initiateCall() {
|
||||
initialize(document,"freshchat-js-sdk")
|
||||
}
|
||||
window.addEventListener ? window.addEventListener("load",initiateCall,!1): window.attachEvent("load",initiateCall,!1);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -16,43 +16,80 @@ import FloatHome from './pages/FloatHome';
|
||||
import Users from './pages/Users';
|
||||
import Fleet from './pages/Fleet';
|
||||
import Privacy from './pages/Privacy';
|
||||
|
||||
|
||||
|
||||
// import {
|
||||
// BrowserRouter as Router,
|
||||
// Routes,
|
||||
// Route
|
||||
// } from "react-router-dom";
|
||||
import GetStarted from './pages/GetStarted';
|
||||
import FindEv from "./pages/FindEv";
|
||||
import FindMobility from "./pages/FindMobility";
|
||||
|
||||
import { Routes, Route } from "react-router-dom";
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
import SiteService from "./svs/SiteService";
|
||||
|
||||
function App() {
|
||||
const [blogData, setBlogData] = useState([]) // for holding
|
||||
const [faqData, setFaqData] = useState([]) // for holding
|
||||
const siteApi = new SiteService(); // instantiating the API SERVICE
|
||||
const getBlogData = async () => {
|
||||
try {
|
||||
const res = await siteApi.blogData();
|
||||
if(res.status == 200 /* && res.data.status > 0*/){
|
||||
console.log(res.data);
|
||||
setBlogData(res.data)
|
||||
return
|
||||
}
|
||||
}catch(error) {
|
||||
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(() => {
|
||||
getBlogData();
|
||||
getFaqData();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="App">
|
||||
|
||||
<Header/>
|
||||
<Routes>
|
||||
<Route path="/" element={<FloatHome/>} />
|
||||
<Route path="/" element={<FloatHome blogData={blogData} faqData={faqData} />} />
|
||||
<Route path="/about" element={<About/>} />
|
||||
<Route path="/faqs" element={<Faqs/>} />
|
||||
<Route path="/faqs" element={<Faqs faqData={faqData}/>} />
|
||||
<Route path="/features" element={<Features/>} />
|
||||
<Route path="/pricing" element={<Pricing/>} />
|
||||
<Route path="/reviews" element={<Reviews/>} />
|
||||
<Route path="/single_post" element={<Single_post/>} />
|
||||
<Route path="/sel_post" element={<Single_post/>} />
|
||||
<Route path="/terms" element={<Terms/>} />
|
||||
<Route path="/demo" element={<Demo/>} />
|
||||
<Route path="/about" element={<About/>} />
|
||||
<Route path="/blog_listing" element={<Blog_listing/>} />
|
||||
<Route path="/blogs" element={<Blog_listing/>} />
|
||||
<Route path="/blogs" element={<Blog_listing blogData={blogData} />} />
|
||||
<Route path="/contacts" element={<Contacts/>} />
|
||||
<Route path="/users" element={<Users/>} />
|
||||
<Route path="/users" element={<Users blogData={blogData} />} />
|
||||
<Route path="/business" element={<Fleet/>} />
|
||||
<Route path="/privacy" element={<Privacy/>} />
|
||||
<Route path="/getstarted" element={<GetStarted blogData={blogData} />} />
|
||||
<Route path="/findev" element={<FindEv />} />
|
||||
<Route path="/findmobility" element={<FindMobility />} />
|
||||
</Routes>
|
||||
<Footer/>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
import React from 'react'
|
||||
import { useLocation, Link } from 'react-router-dom'
|
||||
// import SiteService from '../svs/SiteService';
|
||||
|
||||
const BlogItems = ({blogData}) => {
|
||||
|
||||
let location = useLocation().pathname
|
||||
// const [blogData, setBlogData] = useState({}) // for holding blogs
|
||||
// console.log(blogData.payload)
|
||||
// const blogApi = new SiteService(); // instantiating the API SERVICE
|
||||
// const getBlogData = async () => {
|
||||
// try {
|
||||
// const res = await blogApi.blogData();
|
||||
// if(res.status == 200 /* && res.data.status > 0*/){
|
||||
// console.log('blogitem',res.data.payload, res.data);
|
||||
// setBlogData(res.data)
|
||||
// return
|
||||
// }
|
||||
// }catch(error) {
|
||||
// }
|
||||
// };
|
||||
|
||||
// useEffect(() => {
|
||||
// getBlogData();
|
||||
// }, []);
|
||||
|
||||
return (
|
||||
<div className="row">
|
||||
{
|
||||
blogData?.blogdata == undefined ? // API CALL IN PROGRESS
|
||||
// <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
|
||||
(
|
||||
blogData?.blogdata.length < 1 ?
|
||||
<div className='col-12 text-center display-4'>No Blog Currently Found!</div>
|
||||
:
|
||||
blogData?.blogdata.map((blog, index) => {
|
||||
if(location == '/blogs'){
|
||||
return(
|
||||
<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">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<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={process.env.REACT_APP_IMAGE_LINK + blog.meta_value} alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Float News</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-sm">
|
||||
<Link to="/sel_post" state={{blog}}>{blog.post_title.substring(0,40)+' . . .'}</Link>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<div dangerouslySetInnerHTML={{__html: blog.post_content.substring(0,50)+' . . .'}}></div>
|
||||
{/* <p className="p-md">Aliqum mullam blandit vitae tempor sapien a donec lipsum gravida porta velna dolor vitae auctor
|
||||
congue
|
||||
</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>
|
||||
</div>
|
||||
)
|
||||
}else if (location != 'blogs' && index <= 5) {
|
||||
return (
|
||||
<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">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<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={process.env.REACT_APP_IMAGE_LINK + blog.meta_value} alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Float News</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-sm">
|
||||
<Link to="/sel_post" state={{blog}}>{blog.post_title.substring(0,40)+' . . .'}</Link>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<div dangerouslySetInnerHTML={{__html: blog.post_content.substring(0,50)+' . . .'}}></div>
|
||||
{/* <p className="p-md">Aliqum mullam blandit vitae tempor sapien a donec lipsum gravida porta velna dolor vitae auctor
|
||||
congue
|
||||
</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>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default BlogItems
|
||||
@@ -12,23 +12,23 @@ class Footer extends React.Component {
|
||||
<div className="row">
|
||||
<div className="col-sm-6 col-md-4 col-lg-3">
|
||||
<div className="footer-links mb-40">
|
||||
<ul className="foo-links clearfix">
|
||||
<li><p className="p-md"><Link to="/#">App Features</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Integrations</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">App Updates</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Help & Support</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Customer Stories</Link></p></li>
|
||||
<ul className="foo-links clearfix">
|
||||
<li><p className="p-md"><Link to="#">Stop the Surge</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/blogs">Travel Guide</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/findev">Find Ev Charge</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/findmobility">Find Options</Link></p></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-sm-6 col-md-4 col-lg-3">
|
||||
<div className="footer-links mb-40">
|
||||
<ul className="foo-links clearfix">
|
||||
<li><p className="p-md"><Link to="/blogs">Our Blog</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Customer Stories</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Help & Support</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Life Chatting</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Resources</Link></p></li>
|
||||
<ul className="foo-links clearfix">
|
||||
<li><p className="p-md"><Link to="/#">Users</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Fleet Mangers</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/contacts">Customer Stories</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Resources</Link></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,19 +36,19 @@ class Footer extends React.Component {
|
||||
<div className="footer-links mb-40">
|
||||
<ul className="foo-links clearfix">
|
||||
<li><p className="p-md"><Link to="/about">About Us</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Press & Media</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Advertising</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/privacy">Privacy Policy</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/blogs">Our Blog</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/#">Press Kit (Download)</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/privacy">Privacy Policy</Link></p></li>
|
||||
<li><p className="p-md"><Link to="/terms">Terms & Privacy</Link></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-sm-6 col-md-8 col-lg-3">
|
||||
<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" />
|
||||
</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" />
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -88,7 +88,7 @@ class Header extends React.Component {
|
||||
{/* <li className="nl-simple" aria-haspopup="true"><Link to="/more_apps">More Apps</Link></li>
|
||||
<li className="nl-simple" aria-haspopup="true"><Link to="/blog_listing">Blog</Link></li> */}
|
||||
<li className="nl-simple" aria-haspopup="true">
|
||||
<Link to="/contacts" className="btn btn-rose tra-grey-hover last-link">Let's Started</Link>
|
||||
<Link to="/getstarted" className="btn btn-rose tra-grey-hover last-link">Let's Start</Link>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
html{
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import './index.css';
|
||||
import App from './App';
|
||||
import reportWebVitals from './reportWebVitals';
|
||||
|
||||
import { BrowserRouter } from "react-router-dom";
|
||||
|
||||
ReactDOM.render(
|
||||
// basename='/usr/src/app/build'
|
||||
const rootElement = document.getElementById('root');
|
||||
const root = ReactDOM.createRoot(rootElement);
|
||||
|
||||
root.render(
|
||||
<BrowserRouter>
|
||||
<App />
|
||||
</BrowserRouter>,
|
||||
|
||||
document.getElementById('root')
|
||||
</BrowserRouter>
|
||||
);
|
||||
|
||||
// If you want to start measuring performance in your app, pass a function
|
||||
|
||||
@@ -5,38 +5,31 @@ class About extends React.Component {
|
||||
render() {
|
||||
return(
|
||||
<div>
|
||||
|
||||
|
||||
{/* PRELOADER SPINNER
|
||||
============================================= */}
|
||||
{/* PRELOADER SPINNER */}
|
||||
<div id="loader-wrapper">
|
||||
<div id="loading">
|
||||
<span className="cssload-loader"><span className="cssload-loader-inner" /></span>
|
||||
</div>
|
||||
</div>
|
||||
{/* PAGE CONTENT
|
||||
============================================= */}
|
||||
{/* PAGE CONTENT */}
|
||||
<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 className="container">
|
||||
<div className="row">
|
||||
<div className="col-lg-8 offset-lg-2">
|
||||
<div className="hero-txt text-center white-color">
|
||||
{/* Title */}
|
||||
<h2 className="h2-md">No, we are <span>not just another travel app.</span> </h2>
|
||||
<h2 className="h2-md">{heroInfo.title.normal} <span>{heroInfo.title.bold}</span> </h2>
|
||||
{/* Text */}
|
||||
<p className="p-xl">Float is a global Start Up working on improving everyone’s city life.
|
||||
</p>
|
||||
<p className="p-xl">{heroInfo.desc}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* End row */}
|
||||
</div> {/* End container */}
|
||||
</div> {/* END PAGE HERO */}
|
||||
{/* ABOUT-2
|
||||
============================================= */}
|
||||
{/* ABOUT-2 */}
|
||||
<div id="about-2" className="wide-90 about-section division">
|
||||
<div className="container">
|
||||
{/* TEXT BLOCK */}
|
||||
@@ -45,7 +38,7 @@ class About extends React.Component {
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="txt-block mb-35">
|
||||
<h5 className="h5-lg text-justify">With AI and other unique technology we want to help and encourage people to improve their travel behavior for the better. Whether you want to save time, save money, reduce your carbon footprint, look for great deals or just explore your hood - we’ve got you covered.</h5>
|
||||
<h5 className="h5-lg text-justify">{aboutDesc.upperSection.title}</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -54,22 +47,19 @@ class About extends React.Component {
|
||||
<div className="col-md-6">
|
||||
<div className="txt-block top-box">
|
||||
{/* Title */}
|
||||
<h5 className="h5-lg">OUR VISION</h5>
|
||||
<h5 className="h5-lg">{aboutDesc.upperSection.vision.title}</h5>
|
||||
{/* Text */}
|
||||
<p className="p-lg lh-lg">Improve quality of life for the world's population by building the future global transportation platform. Increasing accessibility and personal choices, while reducing travel time, traffic congestion, pollution, and loss to local GDP.
|
||||
</p>
|
||||
|
||||
<p className="p-lg lh-lg">{aboutDesc.upperSection.vision.text}</p>
|
||||
</div>
|
||||
</div> {/* END LEFT COLUMN */}
|
||||
{/* RIGHT COLUMN */}
|
||||
<div className="col-md-6">
|
||||
<div className="txt-block">
|
||||
{/* Title */}
|
||||
<h5 className="h5-lg">OUR MISSION</h5>
|
||||
<h5 className="h5-lg">{aboutDesc.upperSection.mission.title}</h5>
|
||||
{/* List */}
|
||||
{/* Text */}
|
||||
<p className="p-lg lg-lh">We empower travelers to move easier and faster by analyzing their past trips, with traffic and external factors - allowing them to customize travel and receive rewards for sharing their data for the greater good.
|
||||
</p> {/* End List */}
|
||||
<p className="p-lg lg-lh">{aboutDesc.upperSection.mission.text}</p> {/* End List */}
|
||||
</div>
|
||||
</div> {/* END RIGHT COLUMN */}
|
||||
</div>
|
||||
@@ -84,7 +74,7 @@ class About extends React.Component {
|
||||
</div>
|
||||
{/* TEXT BLOCK */}
|
||||
<div className="about-2-txt pc-50">
|
||||
<h5 className="h5-lg"> <span>MADE FOR YOU</span><br />Created for urbanists</h5>
|
||||
<h5 className="h5-lg"> <span>{aboutDesc.lowerSection.caption.first}</span><br />{aboutDesc.lowerSection.caption.second}</h5>
|
||||
<div className="row">
|
||||
{/* LEFT COLUMN */}
|
||||
<div className="col-md-6">
|
||||
@@ -92,9 +82,7 @@ class About extends React.Component {
|
||||
{/* Title */}
|
||||
{/* <h5 className="h5-lg">We care about the details</h5> */}
|
||||
{/* Text */}
|
||||
<p className="p-lg">A classic day in your urban life:<br />
|
||||
You drive to work, drive to the store, maybe drive your kids to school, drive back home, meet some friends if there is little time left. Distances are so vast, it takes forever to get anywhere and there’s little chance for spontaneity and diversity in daily routines - Vibrating urban Citylife is just passing you by.
|
||||
</p>
|
||||
<p className="p-lg">{aboutDesc.lowerSection.left.first}<br />{aboutDesc.lowerSection.left.second}</p>
|
||||
</div>
|
||||
</div> {/* END LEFT COLUMN */}
|
||||
{/* RIGHT COLUMN */}
|
||||
@@ -103,7 +91,7 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
{/* Title */}
|
||||
{/* <h5 className="h5-lg">With knowledge, skill and hard work</h5> */}
|
||||
{/* List */}
|
||||
<p className="p-lg">You are interested in public infrastructure and promote eco-friendly alternatives - however keeping track of what is the fastest, cheapest and greenest way to get somewhere isn’t easily done while being in a rush. We feel you - we are here to support you with by finding a better way to go.</p> {/* End List */}
|
||||
<p className="p-lg">{aboutDesc.lowerSection.right}</p> {/* End List */}
|
||||
</div>
|
||||
</div> {/* END RIGHT COLUMN */}
|
||||
</div>
|
||||
@@ -112,197 +100,13 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="about-2-btn text-center mt-40">
|
||||
<a href="#" className="btn btn-md btn-skyblue tra-skyblue-hover">Read the Reviews</a>
|
||||
<a href="#" className="btn btn-md btn-skyblue tra-skyblue-hover">{aboutDesc.cta}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* END BUTTON */}
|
||||
</div> {/* End container */}
|
||||
</div> {/* END ABOUT-2 */}
|
||||
{/* TESTIMONIALS-1
|
||||
============================================= */}
|
||||
<section id="reviews-1" className="rel bg_whitesmoke wide-100 reviews-section division">
|
||||
<div className="container">
|
||||
{/* SECTION TITLE */}
|
||||
<div className="row">
|
||||
<div className="col-lg-10 offset-lg-1">
|
||||
<div className="section-title text-center mb-60">
|
||||
<p>MADE FOR US</p>
|
||||
{/* Title */}
|
||||
<h2 className="h2-md">Created from urbanists</h2>
|
||||
{/* Text */}
|
||||
{/* <p className="p-xl">Our Team is as vibrating and diversified as your urban life. */}
|
||||
{/* </p> */}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* TESTIMONIALS CONTENT */}
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="owl-carousel owl-theme reviews-1-wrapper">
|
||||
{Testimonial.map(({title, desc, name, image}, idx) => (
|
||||
<>
|
||||
{/* TESTIMONIAL #1 */}
|
||||
<div className="review-1 radius-08" key={idx}>
|
||||
{/* App Rating */}
|
||||
{/* <div className="app-rating ico-20 yellow-color">
|
||||
<span className="flaticon-star" />
|
||||
<span className="flaticon-star" />
|
||||
<span className="flaticon-star" />
|
||||
<span className="flaticon-star" />
|
||||
<span className="flaticon-star" />
|
||||
</div> */}
|
||||
<div style={{
|
||||
width: '50px',
|
||||
marginInline: 'auto',
|
||||
padding: 3,
|
||||
}}>
|
||||
<img src={image} style={{
|
||||
borderRadius: '100%'
|
||||
}} />
|
||||
</div>
|
||||
{/* Title */}
|
||||
<h5 className="h5-sm">{title}</h5>
|
||||
{/* Testimonial Text */}
|
||||
<div className="review-1-txt">
|
||||
{/* Text */}
|
||||
<p className="p-lg grey-color">{desc}
|
||||
</p>
|
||||
{/* Testimonial Author */}
|
||||
<h5 className="h5-xs">{name}</h5>
|
||||
</div>
|
||||
</div> {/* END TESTIMONIAL #1 */}
|
||||
</>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* End container */}
|
||||
</section> {/* END TESTIMONIALS-1 */}
|
||||
{/* CONTENT-2
|
||||
============================================= */}
|
||||
<section id="content-2" className="wide-50 content-section division">
|
||||
<div className="container">
|
||||
<div className="row d-flex align-items-center">
|
||||
{/* IMAGE BLOCK */}
|
||||
<div className="col-md-5 col-lg-6">
|
||||
<div className="img-block left-column pc-20 mb-40 wow fadeInRight" data-wow-delay="0.6s">
|
||||
<img className="img-fluid" src="assets/images/about-annouce.jpg" alt="content-image" />
|
||||
</div>
|
||||
</div>
|
||||
{/* TEXT BLOCK */}
|
||||
<div className="col-md-7 col-lg-6">
|
||||
<div className="txt-block right-column mb-40 wow fadeInLeft" data-wow-delay="0.6s">
|
||||
{/* Section ID */}
|
||||
<span className="section-id grey-color">Values</span>
|
||||
<div>
|
||||
{/* Title */}
|
||||
<h3 className="h2-xs">Put the User first</h3>
|
||||
{/* Text */}
|
||||
<p className="p-lg">We are fully independent. We will only show you recommendations, tips, and deals customized for you.</p>
|
||||
</div>
|
||||
<div>
|
||||
{/* Title */}
|
||||
<h3 className="h2-xs">Together is Better</h3>
|
||||
{/* Text */}
|
||||
<p className="p-lg">AI and personal behavior are better together. Together we can make better decisions.</p>
|
||||
</div>
|
||||
<div>
|
||||
{/* Title */}
|
||||
<h3 className="h2-xs">There is no planet B</h3>
|
||||
{/* Text */}
|
||||
<p className="p-lg">There are more and more green alternatives especially in transportation we want to encourage everyone to use these.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* END TEXT BLOCK */}
|
||||
</div> {/* End row */}
|
||||
</div> {/* End container */}
|
||||
</section> {/* END CONTENT-2 */}
|
||||
{/* BRANDS-2
|
||||
============================================= */}
|
||||
<section id="brands-2" className="pb-60 brands-section division">
|
||||
<div className="container">
|
||||
{/* BRANDS TITLE */}
|
||||
<div className="row">
|
||||
<div className="col-lg-8 offset-lg-2">
|
||||
<div className="brands-title text-center">
|
||||
<h4 className="h4-md">You might know Float from:</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* BRANDS-2 WRAPPER */}
|
||||
<div className="brands-2-wrapper">
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-1.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-2.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-3.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-4.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-5.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-6.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-7.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-8.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-9.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
{/* BRAND LOGO IMAGE */}
|
||||
<div className="brand-logo">
|
||||
<a href="#">
|
||||
<img className="img-fluid" src="assets/images/brand-10.png" alt="brand-logo" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* END BRANDS-2 WRAPPER */}
|
||||
</div> {/* End container */}
|
||||
</section> {/* END BRANDS-2 */}
|
||||
{/* SECTION DIVIDER
|
||||
============================================= */}
|
||||
<div className="divider-wrapper text-center"><div className="section-divider" /></div>
|
||||
{/* TEAM-1
|
||||
============================================= */}
|
||||
</div> {/* END ABOUT-2 */}
|
||||
{/* TEAM-1 */}
|
||||
<section id="team-1" className="wide-60 team-section division">
|
||||
<div className="container">
|
||||
{/* SECTION TITLE */}
|
||||
@@ -310,9 +114,9 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<div className="col-lg-10 offset-lg-1">
|
||||
<div className="section-title text-center mb-70">
|
||||
{/* Title */}
|
||||
<h2 className="h2-md">One Team Many Talents</h2>
|
||||
<h2 className="h2-md">{team.tag}</h2>
|
||||
{/* Text */}
|
||||
<p className="p-xl">Our Team is as vibrating and diversified as your urban life.</p>
|
||||
<p className="p-xl">{team.title}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -320,8 +124,6 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<div className="team-members-holder pc-20 text-center">
|
||||
<div className="row justify-content-center">
|
||||
{Testimonial.map(({name, title, image, link: {domain, href}}, idx) => (
|
||||
<>
|
||||
{/* TEAM MEMBER #1 */}
|
||||
<div className="col-sm-6 col-lg-3" key={idx}>
|
||||
<div className="team-member wow fadeInUp" data-wow-delay="0.4s">
|
||||
{/* Team Member Photo */}
|
||||
@@ -335,16 +137,13 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<span><a href={href} className="grey-color">@{domain}</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* END TEAM MEMBER #1 */}
|
||||
</>
|
||||
</div>
|
||||
))}
|
||||
</div> {/* End row */}
|
||||
</div> {/* TEAM MEMBERS HOLDER */}
|
||||
</div> {/* End container */}
|
||||
</section> {/* END TEAM-1 */}
|
||||
{/* NEWSLETTER-1
|
||||
============================================= */}
|
||||
{/* NEWSLETTER-1 */}
|
||||
<section id="newsletter-1" className="pb-20 newsletter-section division">
|
||||
<div className="container">
|
||||
<div className="newsletter-wrapper bg-white">
|
||||
@@ -353,9 +152,9 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<div className="col-lg-6">
|
||||
<div className="newsletter-txt">
|
||||
{/* Section ID */}
|
||||
<span className="section-id">Subscribe to Our Newsletter</span>
|
||||
<span className="section-id">{newsletter.tag}</span>
|
||||
{/* Title */}
|
||||
<h4 className="h4-xl">Stay up to date with our news, ideas and updates</h4>
|
||||
<h4 className="h4-xl">{newsletter.title}</h4>
|
||||
</div>
|
||||
</div>
|
||||
{/* NEWSLETTER FORM */}
|
||||
@@ -364,7 +163,7 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
<div className="input-group">
|
||||
<input type="email" autoComplete="off" className="form-control" placeholder="Your email address" required id="s-email" />
|
||||
<span className="input-group-btn">
|
||||
<button type="submit" className="btn btn-md btn-skyblue tra-skyblue-hover">Subscribe Now</button>
|
||||
<button type="submit" className="btn btn-md btn-skyblue tra-skyblue-hover">{newsletter.cta}</button>
|
||||
</span>
|
||||
</div>
|
||||
{/* Newsletter Form Notification */}
|
||||
@@ -374,14 +173,81 @@ You drive to work, drive to the store, maybe drive your kids to school, drive ba
|
||||
</div> {/* End row */}
|
||||
</div> {/* End newsletter-holder */}
|
||||
</div> {/* End container */}
|
||||
</section> {/* END NEWSLETTER-1 */}
|
||||
|
||||
</section> {/* END NEWSLETTER-1 */}
|
||||
</div> {/* END PAGE CONTENT */}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default About
|
||||
export default About
|
||||
|
||||
// PAGE TEXT/CONTENT VARIABLES
|
||||
|
||||
//Hero Section
|
||||
let heroInfo = {
|
||||
title: {
|
||||
normal: 'No, we are ', //leave a space after writing for proper indentation
|
||||
bold: 'not just another travel app.'
|
||||
},
|
||||
desc: "Float is a global Start Up working on improving everyone’s city life."
|
||||
}
|
||||
|
||||
// About Section
|
||||
let aboutDesc = {
|
||||
upperSection: {
|
||||
title: "With AI and other unique technology we want to help and encourage people to improve their travel behavior for the better. Whether you want to save time, save money, reduce your carbon footprint, look for great deals or just explore your hood - we’ve got you covered.",
|
||||
vision: {
|
||||
title: 'OUR VISION',
|
||||
text: "Improve quality of life for the world's population by building the future global transportation platform. Increasing accessibility and personal choices, while reducing travel time, traffic congestion, pollution, and loss to local GDP."
|
||||
},
|
||||
mission: {
|
||||
title: "OUR MISSION",
|
||||
text: "We empower travelers to move easier and faster by analyzing their past trips, with traffic and external factors - allowing them to customize travel and receive rewards for sharing their data for the greater good."
|
||||
}
|
||||
},
|
||||
lowerSection: {
|
||||
caption: {
|
||||
first: "MADE FOR YOU",
|
||||
second: "Created for urbanists"
|
||||
},
|
||||
left: {
|
||||
first: "A classic day in your urban life:",
|
||||
second: "You drive to work, drive to the store, maybe drive your kids to school, drive back home, meet some friends if there is little time left. Distances are so vast, it takes forever to get anywhere and there’s little chance for spontaneity and diversity in daily routines - Vibrating urban Citylife is just passing you by."
|
||||
},
|
||||
right: "You are interested in public infrastructure and promote eco-friendly alternatives - however keeping track of what is the fastest, cheapest and greenest way to get somewhere isn’t easily done while being in a rush. We feel you - we are here to support you with by finding a better way to go."
|
||||
},
|
||||
cta: "Read the Reviews"
|
||||
}
|
||||
|
||||
// Testimonials Section
|
||||
let testimonials = {
|
||||
tag: 'MADE FROM US',
|
||||
title:'Created from urbanists'
|
||||
}
|
||||
|
||||
// Values Section
|
||||
let valueInfo = {
|
||||
id: 'Values',
|
||||
title1: 'Put the User first',
|
||||
text1: 'We are fully independent. We will only show you recommendations, tips, and deals customized for you.',
|
||||
title2: 'Together is Better',
|
||||
text2: 'AI and personal behavior are better together. Together we can make better decisions.',
|
||||
title3: 'There is no planet B',
|
||||
text3: 'There are more and more green alternatives especially in transportation we want to encourage everyone to use these.'
|
||||
}
|
||||
|
||||
// Brand Section
|
||||
let brands = 'You might know Float from:'
|
||||
|
||||
// Team Section
|
||||
let team = {
|
||||
tag: 'One Team Many Talents',
|
||||
title: 'Our Team is as vibrating and diversified as your urban life.',
|
||||
}
|
||||
|
||||
// Newsletter Section
|
||||
let newsletter = {
|
||||
tag: 'Subscribe to Our Newsletter',
|
||||
title: 'Stay up to date with our news, ideas and updates',
|
||||
cta: 'Subscribe Now'
|
||||
}
|
||||
@@ -1,7 +1,24 @@
|
||||
import React, {Component} from 'react';
|
||||
import React, {Component,useState, useEffect} from 'react';
|
||||
import {Link} from 'react-router-dom'
|
||||
import BlogItems from '../components/BlogItems';
|
||||
import SiteService from "../svs/SiteService";
|
||||
|
||||
class Blog_listing extends React.Component {
|
||||
render() {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
// Don't call this.setState() here!
|
||||
// this.state = { counter: 0 };
|
||||
// this.handleClick = this.handleClick.bind(this);
|
||||
console.log("OLU-AMEY BLOG LISTING ",props.blogData);
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
// const [blogData, setBlogData] = useState([]) // for holding
|
||||
//const siteApi = new SiteService(); // instantiating the API SERVICE
|
||||
|
||||
|
||||
return(
|
||||
<div>
|
||||
|
||||
@@ -19,6 +36,7 @@ class Blog_listing extends React.Component {
|
||||
{/* HEADER
|
||||
============================================= */}
|
||||
|
||||
|
||||
{/* BLOG POSTS LISTING
|
||||
============================================= */}
|
||||
<section id="blog-page" className="bg_whitesmoke hero-offset-nav pb-60 blog-page-section division">
|
||||
@@ -37,35 +55,45 @@ class Blog_listing extends React.Component {
|
||||
</div>
|
||||
</div>
|
||||
{/* 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="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> {/* END BLOG POST TEXT */}
|
||||
</div> {/* End row */}
|
||||
</div> {/* END FEATURED POST */}
|
||||
{
|
||||
this.props.blogData?.featured == undefined ? // API CALL IN PROGRESS
|
||||
<div className="text-center">
|
||||
<div className="spinner-border spinner-border-lg" role="status" style={{width: '3rem', height: '3rem'}}>
|
||||
</div>
|
||||
</div>
|
||||
:
|
||||
<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">
|
||||
<Link to="/sel_post" state={{blog:this.props.blogData?.featured}}>{this.props.blogData?.featured.post_title}</Link>
|
||||
</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 */}
|
||||
<div className="posts-wrapper">
|
||||
{/* BLOG POSTS CATEGORY */}
|
||||
@@ -74,172 +102,8 @@ class Blog_listing extends React.Component {
|
||||
<h5 className="h5-lg posts-category">Latest Articles</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row">
|
||||
{/* BLOG POST #1 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-2-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">NordEx News</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Tempor sapien donec gravida ipsum a porta justo vitae</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">Aliqum mullam blandit vitae and tempor sapien and donec lipsum gravida
|
||||
porta undo velna dolor
|
||||
</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>
|
||||
</div> {/* END BLOG POST #1 */}
|
||||
{/* BLOG POST #2 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.6s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-3-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Inspiration</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Aliquam augue impedit luctus neque purus an ipsum neque and dolor libero risus</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">The aliqum mullam vitae tempor sapien and donec lipsum gravida porta velna
|
||||
dolor vitae auctor
|
||||
</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>8 min read</p>
|
||||
</div>
|
||||
</div> {/* END BLOG POST TEXT */}
|
||||
</div>
|
||||
</div> {/* END BLOG POST #2 */}
|
||||
{/* BLOG POST #3 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.8s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-4-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Tutorials</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Tempor sapien donec gravida ipsum and porta justo</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">The aliqum mullam vitae tempor sapien and donec lipsum gravida porta velna
|
||||
dolor vitae auctor
|
||||
</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>22 min read</p>
|
||||
</div>
|
||||
</div> {/* END BLOG POST TEXT */}
|
||||
</div>
|
||||
</div> {/* END BLOG POST #3 */}
|
||||
{/* BLOG POST #4 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.4s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-5-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Extensions</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Neque purus an ipsum neque and dolor libero risus mullam blandit at tempor sapien</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">The aliqum mullam vitae tempor sapien and donec lipsum gravida porta velna
|
||||
dolor vitae auctor
|
||||
</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>1 day read</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> {/* END BLOG POST #4 */}
|
||||
{/* BLOG POST #5 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.6s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-6-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Community</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Tempor sapien donec gravida ipsum a porta justo vitae</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">The aliqum mullam vitae tempor sapien and donec lipsum gravida porta velna
|
||||
dolor vitae auctor
|
||||
</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>54 min read</p>
|
||||
</div>
|
||||
</div> {/* END BLOG POST TEXT */}
|
||||
</div>
|
||||
</div> {/* END BLOG POST #5 */}
|
||||
{/* BLOG POST #6 */}
|
||||
<div className="col-md-6 col-lg-4">
|
||||
<div className="blog-post mb-40 wow fadeInUp" data-wow-delay="0.8s">
|
||||
{/* BLOG POST IMAGE */}
|
||||
<div className="blog-post-img">
|
||||
<img className="img-fluid" src="assets/images/blog/post-7-img.jpg" alt="blog-post-image" />
|
||||
</div>
|
||||
{/* BLOG POST TEXT */}
|
||||
<div className="blog-post-txt">
|
||||
{/* Post Tag */}
|
||||
<p className="p-md post-tag">Extensions</p>
|
||||
{/* Post Link */}
|
||||
<h5 className="h5-xs">
|
||||
<a href="single-post.html">Lipsum gravida porta velna NordEx, donec gravida ipsum a
|
||||
porta justo tempor
|
||||
</a>
|
||||
</h5>
|
||||
{/* Text */}
|
||||
<p className="p-md">The aliqum mullam vitae tempor sapien and donec lipsum gravida porta velna
|
||||
dolor vitae auctor
|
||||
</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>4 hours read</p>
|
||||
</div>
|
||||
</div> {/* END BLOG POST TEXT */}
|
||||
</div>
|
||||
</div> {/* END BLOG POST #6 */}
|
||||
</div> {/* End row */}
|
||||
<BlogItems blogData={this.props.blogData} />
|
||||
{/* End row */}
|
||||
</div> {/* END POSTS WRAPPER */}
|
||||
</div> {/* End container */}
|
||||
{/* GEOMETRIC OVERLAY */}
|
||||
|
||||
@@ -1,25 +1,94 @@
|
||||
import React, {Component} from 'react';
|
||||
import React, {Component, useState, useEffect} from 'react';
|
||||
import SiteService from '../svs/SiteService';
|
||||
|
||||
class Contacts extends React.Component {
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
const {formData, loading, submitError, submitSuccess} = this.state
|
||||
console.log(submitSuccess)
|
||||
return(
|
||||
<div>
|
||||
|
||||
|
||||
{/* PRELOADER SPINNER
|
||||
============================================= */}
|
||||
{/* PRELOADER SPINNER */}
|
||||
<div id="loader-wrapper">
|
||||
<div id="loading">
|
||||
<span className="cssload-loader"><span className="cssload-loader-inner" /></span>
|
||||
</div>
|
||||
</div>
|
||||
{/* PAGE CONTENT
|
||||
============================================= */}
|
||||
{/* PAGE CONTENT */}
|
||||
<div id="page" className="page">
|
||||
{/* HEADER
|
||||
============================================= */}
|
||||
{/* CONTACTS-2
|
||||
============================================= */}
|
||||
{/* HEADER */}
|
||||
{/* CONTACTS-2 */}
|
||||
<section id="contacts-2" className="bg_whitesmoke hero-offset-nav pb-50 contacts-section division">
|
||||
<div className="container">
|
||||
{/* SECTION TITLE */}
|
||||
@@ -39,7 +108,7 @@ class Contacts extends React.Component {
|
||||
<div className="row">
|
||||
<div className="col-lg-10 col-xl-8 offset-lg-1 offset-xl-2">
|
||||
<div className="form-holder">
|
||||
<form name="contactform" className="row contact-form">
|
||||
<form name="contactform" className="row contact-form" onSubmit={this.handleSubmit}>
|
||||
{/* Form Select */}
|
||||
<div id="input-subject" className="col-md-12 input-subject">
|
||||
<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">
|
||||
<p className="p-lg">Your Name: </p>
|
||||
<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 id="input-email" className="col-md-12">
|
||||
<p className="p-lg">Your Email Address: </p>
|
||||
<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 id="input-message" className="col-md-12 input-message">
|
||||
<p className="p-lg">Explain your question in details: </p>
|
||||
<span>Your OS version, NordEx version & build, steps you did. Be VERY precise!</span>
|
||||
<textarea className="form-control message" name="message" rows={6} placeholder="I have a problem with..." defaultValue={""} />
|
||||
<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..." value={formData.message} onChange={this.handleInputChange} />
|
||||
</div>
|
||||
{/* Contact Form Button */}
|
||||
<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>
|
||||
{/* Contact Form Message */}
|
||||
<div className="col-lg-12 contact-form-msg">
|
||||
|
||||
@@ -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() {
|
||||
const data = this.props.faqData
|
||||
return(
|
||||
<div>
|
||||
|
||||
|
||||
{/* PRELOADER SPINNER
|
||||
============================================= */}
|
||||
{/* PRELOADER SPINNER */}
|
||||
{/* PRELOADER SPINNER */}
|
||||
<div id="loader-wrapper">
|
||||
<div id="loading">
|
||||
<span className="cssload-loader"><span className="cssload-loader-inner" /></span>
|
||||
</div>
|
||||
</div>
|
||||
{/* PAGE CONTENT
|
||||
============================================= */}
|
||||
{/* PAGE CONTENT */}
|
||||
<div id="page" className="page">
|
||||
{/* HEADER
|
||||
============================================= */}
|
||||
|
||||
{/* FAQs-2
|
||||
============================================= */}
|
||||
{/* HEADER */}
|
||||
{/* FAQs-2 */}
|
||||
<section id="faqs-2" className="bg_whitesmoke hero-offset-nav pb-100 faqs-section division">
|
||||
<div className="container">
|
||||
{/* SECTION TITLE */}
|
||||
@@ -42,128 +41,40 @@ class Faqs extends React.Component {
|
||||
{/* QUESTIONS HOLDER */}
|
||||
<div className="col-lg-6">
|
||||
<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 */}
|
||||
<h5 className="h5-sm">How do I get started?</h5>
|
||||
<h5 className="h5-sm">{item.title}</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>
|
||||
<p className="p-lg">{item.text}</p>
|
||||
</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> {/* END QUESTIONS HOLDER */}
|
||||
{/* QUESTIONS HOLDER */}
|
||||
<div className="col-lg-6">
|
||||
<div className="questions-holder pc-10">
|
||||
{/* QUESTION #6 */}
|
||||
<div className="question wow fadeInUp" data-wow-delay="0.4s">
|
||||
{data.map((item, idx) => {
|
||||
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 */}
|
||||
<h5 className="h5-sm">Troubles with verification</h5>
|
||||
<h5 className="h5-sm">{item.title}</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>
|
||||
{/* 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>
|
||||
<p className="p-lg">{item.text}</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> {/* END QUESTIONS HOLDER */}
|
||||
</div> {/* End row */}
|
||||
@@ -182,8 +93,7 @@ class Faqs extends React.Component {
|
||||
{/* GEOMETRIC OVERLAY */}
|
||||
<div className="bg_fixed geometric_overlay" />
|
||||
</section> {/* END FAQs-2 */}
|
||||
{/* DOWNLOAD-2
|
||||
============================================= */}
|
||||
{/* DOWNLOAD-2 */}
|
||||
<section id="download-2" className="bg_whitesmoke pb-20 download-section division">
|
||||
<div className="container white-color">
|
||||
<div className="rel purple_gradient bg_shape_01 downloads-2-wrapper">
|
||||
@@ -193,7 +103,8 @@ class Faqs extends React.Component {
|
||||
<div className="download-2-txt white-color">
|
||||
{/* Icon */}
|
||||
<div className="download-2-logo">
|
||||
<img className="img-fluid" src="assets/images/app-logo.png" alt="app-logo" />
|
||||
{/* <img className="img-fluid" src="assets/images/app-logo.png" alt="app-logo" /> */}
|
||||
<img className="img-fluid" src="assets/images/favicon.svg" alt="app-logo" />
|
||||
</div>
|
||||
{/* Title */}
|
||||
<div className="d2-txt">
|
||||
@@ -205,11 +116,11 @@ class Faqs extends React.Component {
|
||||
<div className="col-lg-5 text-right">
|
||||
<div className="stores-badge">
|
||||
{/* 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" />
|
||||
</a>
|
||||
{/* 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" />
|
||||
</a>
|
||||
</div>
|
||||
@@ -218,11 +129,7 @@ class Faqs extends React.Component {
|
||||
</div> {/* End row */}
|
||||
</div> {/* End container */}
|
||||
</section> {/* END DOWNLOAD-2 */}
|
||||
|
||||
</div> {/* END PAGE CONTENT */}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ class Features extends React.Component {
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<div className="img-block text-center wow fadeInUp" data-wow-delay="0.6s">
|
||||
<img className="img-fluid" src="assets/images/browsers.png" alt="content-image" />
|
||||
<img className="img-fluid" src="assets/images/browser-edit.png" alt="content-image" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -396,11 +396,11 @@ class Features extends React.Component {
|
||||
{/* STORE BADGES */}
|
||||
<div className="stores-badge">
|
||||
{/* AppStore */}
|
||||
<a href="#" className="store">
|
||||
<a href={process.env.REACT_APP_APPLE_LINK} className="store">
|
||||
<img className="appstore" src="assets/images/appstore.png" alt="appstore-badge" />
|
||||
</a>
|
||||
{/* Google Play */}
|
||||
<a href="#" className="store">
|
||||
<a href={process.env.REACT_APP_GOOGLE_PLAY_LINK} className="store">
|
||||
<img className="googleplay" src="assets/images/googleplay.png" alt="googleplay-badge" />
|
||||
</a>
|
||||
{/* Aamazon Market
|
||||
|
||||