Compare commits
14 Commits
refer_page
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 97880b9737 | |||
| ea5eff6597 | |||
| e9af0263f8 | |||
| 15bd1a9dd7 | |||
| 210e73d09b | |||
| 64390441a1 | |||
| c8095755b5 | |||
| e1000ce0db | |||
| c5d67ad79b | |||
| 80d0f0b326 | |||
| ebba068098 | |||
| 8ad3e31f60 | |||
| 5ba57b4b30 | |||
| 4764a3dd72 |
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
APP_PORT=9081
|
APP_PORT=9081
|
||||||
ESLINT_NO_DEV_ERRORS=true
|
ESLINT_NO_DEV_ERRORS=true
|
||||||
|
|
||||||
NEXT_PUBLIC_AUX_ENDPOINT="https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1"
|
NEXT_PUBLIC_AUX_ENDPOINT="https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1"
|
||||||
NEXT_PUBLIC_USERS_ENDPOINT="https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1"
|
NEXT_PUBLIC_USERS_ENDPOINT="https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1"
|
||||||
|
|
||||||
NEXT_PUBLIC_SITE_NAME='WrenchBoard'
|
NEXT_PUBLIC_SITE_NAME='WrenchBoard'
|
||||||
NEXT_PUBLIC_DASH_URL='https://users.wrenchboard.com'
|
NEXT_PUBLIC_DASH_URL='https://users.wrenchboard.com'
|
||||||
|
|||||||
@@ -6809,6 +6809,31 @@ blockquote cite {
|
|||||||
border-color: #db0f30;
|
border-color: #db0f30;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.refer-container a {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refer-container a::before{
|
||||||
|
content: "■";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 0px;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.refer-container a {
|
||||||
|
border: none;
|
||||||
|
color: #505056;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
.refer-container a:hover {
|
||||||
|
color: #4687ba;
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
/*===========================
|
/*===========================
|
||||||
12.APPIE COUNTER css
|
12.APPIE COUNTER css
|
||||||
===========================*/
|
===========================*/
|
||||||
|
|||||||
@@ -1,36 +1,44 @@
|
|||||||
"use client"
|
"use client";
|
||||||
import React, { useEffect, useState } from 'react'
|
import React, { useLayoutEffect, useState } from 'react';
|
||||||
//import Cookies from 'js-cookie'
|
|
||||||
|
|
||||||
export default function AcceptCookies() {
|
export default function AcceptCookies() {
|
||||||
const [cookies, setCookies] = useState(true)
|
// Safe cookie getter
|
||||||
|
function getCookie(name) {
|
||||||
const acceptCookies = () => {
|
if (typeof document === 'undefined') return null; // SSR safety
|
||||||
// Cookies.set('useCookies', 'true')
|
const value = `; ${document.cookie}`;
|
||||||
setCookies(true)
|
const parts = value.split(`; ${name}=`);
|
||||||
}
|
if (parts.length === 2) return parts.pop().split(';').shift();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(()=>{
|
const [cookies, setCookies] = useState(true); // Start as true
|
||||||
const useCookies = false; // Cookies.get('useCookies')
|
|
||||||
if(useCookies == 'true'){
|
const acceptCookies = () => {
|
||||||
setCookies(true)
|
document.cookie = `use_cookies=${encodeURIComponent('true')}; path=/; max-age=31536000`; // 1 year
|
||||||
|
setCookies(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
useLayoutEffect(()=>{
|
||||||
|
const useCookies = getCookie('use_cookies');
|
||||||
|
if (useCookies && decodeURIComponent(useCookies) === 'true') {
|
||||||
|
setCookies(true);
|
||||||
}else{
|
}else{
|
||||||
setCookies(false)
|
setCookies(false)
|
||||||
}
|
}
|
||||||
},[])
|
},[])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{/* {cookies ?
|
{cookies ? <></> : (
|
||||||
<></>
|
|
||||||
: */}
|
|
||||||
<div className={`${cookies ? 'slide-down' : 'slide-up'} cookies-wrapper position-fixed d-lg-flex justify-content-center align-items-center gap-5 p-2`}>
|
<div className={`${cookies ? 'slide-down' : 'slide-up'} cookies-wrapper position-fixed d-lg-flex justify-content-center align-items-center gap-5 p-2`}>
|
||||||
<p className='m-0'>
|
<p className="m-0">
|
||||||
This website uses cookies to provide you the best experience possible, as well as for tracking performance and marketing purposes. You can check our privacy policy for more information. By clicking ❛❛Confirm❜❜ or by continuing to use our website, you consent to our use of cookies.
|
This website uses cookies to provide you the best experience possible, as well as for tracking performance and marketing purposes. You can check our privacy policy for more information. By clicking ❛❛Confirm❜❜ or by continuing to use our website, you consent to our use of cookies.
|
||||||
</p>
|
</p>
|
||||||
<button onClick={acceptCookies} className='px-5 py-2'>Accept</button>
|
<button onClick={acceptCookies} className="px-5 py-2">
|
||||||
|
Accept
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/* } */}
|
)}
|
||||||
</>
|
</>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,26 +31,25 @@ function FooterHomeOne({ className }) {
|
|||||||
<Link href="/service">
|
<Link href="/service">
|
||||||
Read More <i className="fal fa-arrow-right" />
|
Read More <i className="fal fa-arrow-right" />
|
||||||
</Link>
|
</Link>
|
||||||
<div className="social mt-30">
|
{/* <div className="social mt-30">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href={site.facebook_link}>
|
<a target='_blank' href={site.facebook_link}>
|
||||||
<i className="fab fa-facebook-f"/>
|
<i className="fab fa-facebook-f"/>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
|
<a target='_blank' href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
|
||||||
{/* <i className="fab fa-twitter" /> */}
|
|
||||||
<i className="fab fa-x-twitter"></i>
|
<i className="fab fa-x-twitter"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a className="you" href={process.env.NEXT_PUBLIC_YOUTUBE_LINK}>
|
<a target='_blank' className="you" href={process.env.NEXT_PUBLIC_YOUTUBE_LINK}>
|
||||||
<i className="fab fa-youtube"></i>
|
<i className="fab fa-youtube"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-lg-2 col-md-6">
|
<div className="col-lg-2 col-md-6">
|
||||||
@@ -107,7 +106,7 @@ function FooterHomeOne({ className }) {
|
|||||||
<i className="fal fa-envelope" /> {site.support_email}
|
<i className="fal fa-envelope" /> {site.support_email}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
{/* <li>
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i className="fal fa-phone" /> 404-855-7966
|
<i className="fal fa-phone" /> 404-855-7966
|
||||||
</a>
|
</a>
|
||||||
@@ -116,9 +115,30 @@ function FooterHomeOne({ className }) {
|
|||||||
<a href="#">
|
<a href="#">
|
||||||
<i className="fal fa-map-marker-alt" />Atlanta, GA 30339
|
<i className="fal fa-map-marker-alt" />Atlanta, GA 30339
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li> */}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div className='footer-about-widget'>
|
||||||
|
<div className="social mt-30">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a target='_blank' href={site.facebook_link}>
|
||||||
|
<i className="fab fa-facebook-f"/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a target='_blank' href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
|
||||||
|
<i className="fab fa-x-twitter"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a target='_blank' className="you" href={process.env.NEXT_PUBLIC_YOUTUBE_LINK}>
|
||||||
|
<i className="fab fa-youtube"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
|
|||||||
+31
-11
@@ -17,19 +17,38 @@ function Forms() {
|
|||||||
terms_conditions: false
|
terms_conditions: false
|
||||||
})
|
})
|
||||||
|
|
||||||
const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message
|
|
||||||
|
|
||||||
const handleChange = ({target:{name, value}}) => {
|
const handleChange = ({target:{name, value}}) => {
|
||||||
setFormDetails(prev => ({...prev, [name]:value}))
|
if(name == 'terms_conditions'){
|
||||||
|
setFormDetails(prev => ({...prev, [name]:!prev.terms_conditions}))
|
||||||
|
}else{
|
||||||
|
setFormDetails(prev => ({...prev, [name]:value}))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const [requestStatus, setRequestStatus] = useState({loading:false, status:false, msg:''})
|
const [requestStatus, setRequestStatus] = useState({loading:false, status:false, msg:''})
|
||||||
|
|
||||||
|
const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message
|
||||||
function handleSubmit(e) {
|
function handleSubmit(e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
const isChecked = formDetails.terms_conditions
|
||||||
setRequestStatus({loading:true, status:false, msg:''})
|
setRequestStatus({loading:true, status:false, msg:''})
|
||||||
if(!validForm){
|
if(!validForm){
|
||||||
setRequestStatus({loading:false, status:false, msg:'please, fill all fields'})
|
setRequestStatus({loading:false, status:false, msg:'Please, fill all fields'})
|
||||||
|
setTimeout(()=>{
|
||||||
|
setRequestStatus({loading:false, status:false, msg:''})
|
||||||
|
},3000)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(!(/^\d{7,15}$/.test(formDetails.phone_number))){
|
||||||
|
setRequestStatus({loading:false, status:false, msg:'Please, enter a valid phone number'})
|
||||||
|
setTimeout(()=>{
|
||||||
|
setRequestStatus({loading:false, status:false, msg:''})
|
||||||
|
},3000)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(!isChecked){
|
||||||
|
setRequestStatus({loading:false, status:false, msg:'Please, Accept Terms & Conditions'})
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
setRequestStatus({loading:false, status:false, msg:''})
|
setRequestStatus({loading:false, status:false, msg:''})
|
||||||
},3000)
|
},3000)
|
||||||
@@ -79,7 +98,7 @@ function Forms() {
|
|||||||
<div className="contact--info-area">
|
<div className="contact--info-area">
|
||||||
<h3>Get in touch</h3>
|
<h3>Get in touch</h3>
|
||||||
<p>Looking for help? Fill the form and start a new discussion.</p>
|
<p>Looking for help? Fill the form and start a new discussion.</p>
|
||||||
<div className="single-info">
|
{/* <div className="single-info">
|
||||||
<h5>Headquaters</h5>
|
<h5>Headquaters</h5>
|
||||||
<p>
|
<p>
|
||||||
<i className="fal fa-home"></i>
|
<i className="fal fa-home"></i>
|
||||||
@@ -93,7 +112,7 @@ function Forms() {
|
|||||||
{process.env.NEXT_PUBLIC_SUPPORT_PHONE}
|
{process.env.NEXT_PUBLIC_SUPPORT_PHONE}
|
||||||
<br />
|
<br />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div> */}
|
||||||
<div className="single-info">
|
<div className="single-info">
|
||||||
<h5>Support</h5>
|
<h5>Support</h5>
|
||||||
<p>
|
<p>
|
||||||
@@ -135,14 +154,14 @@ function Forms() {
|
|||||||
type="email"
|
type="email"
|
||||||
name="email"
|
name="email"
|
||||||
placeholder="Email Address"
|
placeholder="Email Address"
|
||||||
maxLength={35}
|
maxLength={55}
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
value={formDetails.email}
|
value={formDetails.email}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="text"
|
||||||
name="phone_number"
|
name="phone_number"
|
||||||
placeholder="Phone Number"
|
placeholder="Phone Number"
|
||||||
maxLength={15}
|
maxLength={15}
|
||||||
@@ -151,7 +170,7 @@ function Forms() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-md-12">
|
<div className="col-md-12">
|
||||||
<input type="text" name="subject" placeholder="Subject" maxLength={35} value={formDetails.subject} onChange={handleChange} />
|
<input type="text" name="subject" placeholder="Subject" maxLength={150} value={formDetails.subject} onChange={handleChange} />
|
||||||
</div>
|
</div>
|
||||||
<div className="col-md-12">
|
<div className="col-md-12">
|
||||||
<textarea
|
<textarea
|
||||||
@@ -159,6 +178,7 @@ function Forms() {
|
|||||||
placeholder="How can we help?"
|
placeholder="How can we help?"
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
value={formDetails.message}
|
value={formDetails.message}
|
||||||
|
maxLength={350}
|
||||||
></textarea>
|
></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
|
|||||||
+2
-2
@@ -36,7 +36,7 @@ export default function RootLayout({
|
|||||||
{children}
|
{children}
|
||||||
<AcceptCookies />
|
<AcceptCookies />
|
||||||
</body>
|
</body>
|
||||||
<Script id='chat-support'>
|
{/* <Script id='chat-support'>
|
||||||
{`
|
{`
|
||||||
var LHC_API = LHC_API || {};
|
var LHC_API = LHC_API || {};
|
||||||
LHC_API.args = {
|
LHC_API.args = {
|
||||||
@@ -62,7 +62,7 @@ export default function RootLayout({
|
|||||||
s.parentNode.insertBefore(po, s);
|
s.parentNode.insertBefore(po, s);
|
||||||
})();
|
})();
|
||||||
`}
|
`}
|
||||||
</Script>
|
</Script> */}
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-10
@@ -5,6 +5,7 @@ import { useParams } from 'next/navigation';
|
|||||||
|
|
||||||
import cardImg from '../assets/images/home/wrench-card-only.png'
|
import cardImg from '../assets/images/home/wrench-card-only.png'
|
||||||
import wrenchAgent from '../assets/images/home/wrench-agent.png'
|
import wrenchAgent from '../assets/images/home/wrench-agent.png'
|
||||||
|
import Link from 'next/link';
|
||||||
// import bg from '../assets/images/background-bg.jpg'
|
// import bg from '../assets/images/background-bg.jpg'
|
||||||
|
|
||||||
function Hero() {
|
function Hero() {
|
||||||
@@ -20,7 +21,7 @@ function Hero() {
|
|||||||
<h3 className="appie-title">
|
<h3 className="appie-title">
|
||||||
{/* We bring everything <br />
|
{/* We bring everything <br />
|
||||||
that's required to build apps */}
|
that's required to build apps */}
|
||||||
Set Chores, Set Goals
|
Join WrenchBoard and Start Earning
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -31,7 +32,7 @@ function Hero() {
|
|||||||
<div className='row appie-about-8-box'>
|
<div className='row appie-about-8-box'>
|
||||||
<div className="col-12 col-md-6">
|
<div className="col-12 col-md-6">
|
||||||
<h3 className="title">
|
<h3 className="title">
|
||||||
Reward Accomplishments
|
Get Reward for Accomplishments
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
On WrenchBoard, set goals, tasks, or anything else that motivates or needs to be done, and reward completion. WrenchBoard is the platform for planning rewards, engaging, and connecting with family.
|
On WrenchBoard, set goals, tasks, or anything else that motivates or needs to be done, and reward completion. WrenchBoard is the platform for planning rewards, engaging, and connecting with family.
|
||||||
@@ -58,15 +59,25 @@ function Hero() {
|
|||||||
<div className='appie-about-container'>
|
<div className='appie-about-container'>
|
||||||
<div className='h-100 row appie-about-8-box'>
|
<div className='h-100 row appie-about-8-box'>
|
||||||
<div className="col-12 col-md-6">
|
<div className="col-12 col-md-6">
|
||||||
<div className='h-100 d-flex flex-column justify-content-between'>
|
<div className='h-100 d-flex flex-column gap-5'>
|
||||||
<h3 className="title">
|
<h3 className="title">
|
||||||
Assign Faster with <br />
|
Learn more...
|
||||||
wrenchAgent
|
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<ul className='refer-container'>
|
||||||
Ask our ❛❛<span className=''>wrench</span><span className=''>Agent</span>❜❜ Generative AI to assist
|
<li>
|
||||||
</p>
|
<Link href="/about-us">About WrenchBoard</Link>
|
||||||
<div className=''>
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="/use-cases">Use Cases</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="/service">Services</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="/faq">FAQ</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div className='d-none'>
|
||||||
<a className="mb-5 mb-md-0 main-btn" href={`${process.env.NEXT_PUBLIC_DASH_URL}/myrefer/${refer_link}`}>
|
<a className="mb-5 mb-md-0 main-btn" href={`${process.env.NEXT_PUBLIC_DASH_URL}/myrefer/${refer_link}`}>
|
||||||
Get Started <i className="fal fa-arrow-right" />
|
Get Started <i className="fal fa-arrow-right" />
|
||||||
</a>
|
</a>
|
||||||
@@ -76,7 +87,7 @@ function Hero() {
|
|||||||
<div className="col-12 col-md-6">
|
<div className="col-12 col-md-6">
|
||||||
<Image
|
<Image
|
||||||
src={wrenchAgent}
|
src={wrenchAgent}
|
||||||
className='w-100 h-100'
|
className='w-100 h-auto'
|
||||||
width={'100'}
|
width={'100'}
|
||||||
height={'100'}
|
height={'100'}
|
||||||
alt=""
|
alt=""
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ import '../../assets/css/style.css';
|
|||||||
export default function page() {
|
export default function page() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<HomeNav />
|
{/* <HomeNav />
|
||||||
<div className='' style={{paddingTop:'100px'}}></div>
|
<div className='' style={{paddingTop:'100px'}}></div> */}
|
||||||
<Hero />
|
<Hero />
|
||||||
<FooterHomeOne className={''} />
|
<FooterHomeOne className={''} />
|
||||||
<BackToTop className='' />
|
<BackToTop className='' />
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
"caniuse-lite": "^1.0.30001651",
|
"caniuse-lite": "^1.0.30001651",
|
||||||
"js-cookie": "^3.0.5",
|
|
||||||
"next": "14.2.5",
|
"next": "14.2.5",
|
||||||
"react": "^18",
|
"react": "^18",
|
||||||
"react-dom": "^18",
|
"react-dom": "^18",
|
||||||
|
|||||||
Reference in New Issue
Block a user