Merge branch 'Performing-task-Text-and-Image' of WrenchBoard/WrenchBoardMainSite into master

This commit is contained in:
2023-09-04 12:55:41 +00:00
committed by Gogs
8 changed files with 339 additions and 246 deletions
+24 -3
View File
@@ -29,6 +29,16 @@ body {
color: #505056; color: #505056;
overflow-x: hidden; overflow-x: hidden;
} }
body[data-theme="dark"] {
--logo: url("../images/wrenchboard-logo-text.png") no-repeat;
}
body[data-theme="light"] {
--logo: url("../images/wrenchboard.png") no-repeat;
}
/* ==========================================vue */ /* ==========================================vue */
* { * {
margin: 0; margin: 0;
@@ -1466,10 +1476,21 @@ p {
letter-spacing: 2px; letter-spacing: 2px;
text-shadow: 0px 4px 10px rgba(0,0,0,0.3); text-shadow: 0px 4px 10px rgba(0,0,0,0.3);
} }
.appie-title .earn-rewards{ /* .appie-title .earn-rewards{ */
border-radius: 7px; /* border-radius: 7px;
background-color: rgb(245, 71, 71) !important; background-color: rgb(245, 71, 71) !important; */
/* text-shadow: 2px 2px 2px #fff; */ /* text-shadow: 2px 2px 2px #fff; */
/* } */
.earn-rewards::before {
background: #f54747!important;
border-radius: 7px;
content: "";
height: 3.8rem;
position: absolute;
width: 17rem;
z-index: -1;
transform: translate(-10px, 5px) rotate(357deg);
} }
@media only screen and (min-width: 992px) and (max-width: 1200px) { @media only screen and (min-width: 992px) and (max-width: 1200px) {
+91 -125
View File
@@ -1,130 +1,96 @@
import React from 'react'; import React from "react";
import Design from '../../assets/images/design.png' import Design from "../../assets/images/design.png";
import Approach from '../../assets/images/approach.png' import Approach from "../../assets/images/approach.png";
import Interactive from '../../assets/images/interactive.png' import Interactive from "../../assets/images/interactive.png";
import Mobility from '../../assets/images/mobility-approach.png' import Mobility from "../../assets/images/mobility-approach.png";
import Privacy from '../../assets/images/privacy.png' import Privacy from "../../assets/images/privacy.png";
import Seamless from '../../assets/images/seamless.png' import Seamless from "../../assets/images/seamless.png";
function ServiceItem(props) {
function AboutTextComponent () { return (
<div
return ( className={`appie-single-service-2 appie-single-service-about item-${props.index} mt-30 wow animated fadeInUp`}
<> data-wow-duration="2000ms"
<div className="container"> data-wow-delay={`${props.delay}ms`}
<div className="row"> style={{ cursor: "default" }}
<div className="col-lg-4 col-md-6"> >
<div <div className="icon d-flex justify-content-center align-items-center">
className="appie-single-service-2 appie-single-service-about mt-30 wow animated fadeInUp" <img src={props.image} alt="icon" />
data-wow-duration="2000ms" </div>
data-wow-delay="200ms" <h4 className="title">{props.title}</h4>
> <p>{props.description}</p>
<div className="icon d-flex justify-content-center align-items-center"> </div>
<img src={Design} alt="Design Icon" /> );
</div> }
<h4 className="designed-title">Unlocking Potential</h4>
<p className="designed-description">
At WrenchBoard, we believe age should never limit one's ability to pursue their passions and generate income.
Our platform offers a variety of categories for kids to explore and turn into profitable endeavors,
fostering financial awareness and unlocking their potential for a brighter future.</p>
</div>
</div>
function AboutTextComponent() {
return (
<div className="col-lg-4 col-md-6"> <>
<div <div className="container">
className="appie-single-service-2 appie-single-service-about item-2 mt-30 wow animated fadeInUp" <div className="row">
data-wow-duration="2000ms" <div className="row">
data-wow-delay="400ms" {servicesContent?.map(({ id, ...item }) => (
> <div className="col-lg-4 col-md-6">
<div className="icon d-flex justify-content-center align-items-center"> <ServiceItem index={id} {...item} />
</div>
<img src={Approach} alt="Approach Icon"/> ))}
</div> </div>
<h4 className="designed-title">Growing Money Mindset</h4> </div>
<p className="designed-description"> </div>
We prioritize developing a strong money mindset in Kids. </>
WrenchBoard offers a safe and supportive space for kids to explore their passions, learn new skills, and earn money. );
By instilling the value of hard work, saving, and investing, }
we aim to empower the next generation to make informed financial decisions and reach their goals.</p>
</div>
</div>
<div className="col-lg-4 col-md-6"> export default AboutTextComponent;
<div
className="appie-single-service-2 appie-single-service-about item-3 mt-30 wow animated fadeInUp"
data-wow-duration="2000ms"
data-wow-delay="600ms"
>
<div className="icon d-flex justify-content-center align-items-center">
<img src={Interactive} alt="Interactive Icon"/>
</div>
<h4 className="designed-title">Realtime Notifications</h4>
<p className="designed-description">
Stay up-to-date with WrenchBoard! Our platform keeps you in the loop with convenient alerts and notifications.
Choose your preferred method of receiving updates - email, text, or push notifications - and never miss a beat. </p>
</div>
</div>
<div className="col-lg-4 col-md-6"> const servicesContent = [
<div {
className="appie-single-service-2 appie-single-service-about item-4 mt-30 wow animated fadeInUp" id: 1,
data-wow-duration="2000ms" image: Design,
data-wow-delay="200ms" delay: 200,
> title: "Unlocking Potential",
<div className="icon d-flex justify-content-center align-items-center"> description:
<img src={Mobility} alt="Mobility Icon" /> "At WrenchBoard, we believe age should never limit one's ability to pursue their passions and generate income. Our platform offers a variety of categories for kids to explore and turn into profitable endeavors, fostering financial awareness and unlocking their potential for a brighter future.",
</div> },
<h4 className="designed-title">Social Media Management</h4> {
<p className="designed-description"> id: 2,
Teach youngsters the art of handling social media profiles for small enterprises, image: Approach,
cultivating essential marketing and communication abilities while also generating income. delay: 400,
Manage tasks, track responses, and stay connected effortlessly. title: "Growing Money Mindset",
Experience a true mobile lifestyle with WrenchBoard!</p> description:
</div> "We prioritize developing a strong money mindset in Kids. WrenchBoard offers a safe and supportive space for kids to explore their passions, learn new skills, and earn money. By instilling the value of hard work, saving, and investing, we aim to empower the next generation to make informed financial decisions and reach their goals.",
</div> },
{
<div className="col-lg-4 col-md-6"> id: 3,
<div image: Interactive,
className="appie-single-service-2 appie-single-service-about item-5 mt-30 wow animated fadeInUp" delay: 600,
data-wow-duration="2000ms" title: "Realtime Notifications",
data-wow-delay="400ms" description:
> "Stay up-to-date with WrenchBoard! Our platform keeps you in the loop with convenient alerts and notifications. Choose your preferred method of receiving updates - email, text, or push notifications - and never miss a beat.",
<div className="icon d-flex justify-content-center align-items-center"> },
{
<img src={Seamless} alt="Seamless Icon"/> id: 4,
</div> image: Mobility,
<h4 className="designed-title">Inspiring Future Leaders</h4> delay: 200,
<p className="designed-description"> title: "Social Media Management",
By offering a platform for kids to earn, learn, and contribute, description:
WrenchBoard is nurturing the next generation of entrepreneurs, creators, and leaders. "Teach youngsters the art of handling social media profiles for small enterprises, cultivating essential marketing and communication abilities while also generating income. Manage tasks, track responses, and stay connected effortlessly. Experience a true mobile lifestyle with WrenchBoard!",
We're sowing the seeds of ambition and self-confidence, preparing them for a brighter future.</p> },
</div> {
</div> id: 5,
image: Seamless,
<div className="col-lg-4 col-md-6"> delay: 400,
<div title: "Inspiring Future Leaders",
className="appie-single-service-2 appie-single-service-about item-6 mt-30 wow animated fadeInUp" description:
data-wow-duration="2000ms" "By offering a platform for kids to earn, learn, and contribute, WrenchBoard is nurturing the next generation of entrepreneurs, creators, and leaders. We're sowing the seeds of ambition and self-confidence, preparing them for a brighter future.",
data-wow-delay="600ms" },
> {
<div className="icon d-flex justify-content-center align-items-center"> id: 6,
image: Privacy,
<img src={Privacy} alt="Privacy Icon"/> delay: 600,
</div> title: "Privacy",
<h4 className="designed-title">Privacy</h4> description:
<p className="designed-description"> "Your privacy matters. WrenchBoard works without data sharing, ensuring your information stays secure. Manage tasks across platforms confidently, enjoying a unified experience that respects your privacy.",
Your privacy matters. WrenchBoard works without data sharing, ensuring your information stays secure. },
Manage tasks across platforms confidently, enjoying a unified experience that respects your privacy.</p> ];
</div>
</div>
</div>
</div>
</>
);
};
export default AboutTextComponent;
+25 -27
View File
@@ -1,41 +1,39 @@
import React from 'react';
function HeroAbout() { function HeroAbout() {
return ( return (
<> <>
<div className="appie-about-top-title-area"> <div className="appie-about-top-title-area">
<div className="container"> <div className="container">
<div className="row"> <div className="row">
<div className="col-lg-7"> <div className="col-lg-7">
<div className="appie-about-top-title"> <div className="appie-about-top-title">
<h2 className="title">Our team is here to support you.</h2> <h2 className="title">Our team is here to support you.</h2>
</div> </div>
</div>
</div>
</div>
</div> </div>
<section className="appie-about-page-area"> <section className="appie-about-page-area">
<div className="container"> <div className="container">
<div className="row"> <div className="row">
{/* col-lg-8 */} {/* col-lg-8 */}
<div className="col-12"> <div className="col-12">
<div className="appie-about-page-content"> <div className="appie-about-page-content">
<h3 className="title"> <h3 className="title">
We Empower Reward for Achievements We Empower Reward for Achievements
</h3> </h3>
<p> <p>
WrenchBoard prioritizes safety above all. Parents can set up family accounts to oversee their children's activities and earnings. We implement strict guidelines to ensure age-appropriate tasks and interactions, providing a worry-free space for both kids and their guardians. WrenchBoard prioritizes safety above all. Parents can set up family accounts to oversee their children's activities and earnings. We implement strict guidelines to ensure age-appropriate tasks and interactions, providing a worry-free space for both kids and their guardians.
We believe that earning should go hand in hand with learning. As kids complete projects and earn, they also acquire essential life skills such as financial literacy, time management, and effective communication. WrenchBoard isn't just about making money; it's about fostering holistic growth. We believe that earning should go hand in hand with learning. As kids complete projects and earn, they also acquire essential life skills such as financial literacy, time management, and effective communication. WrenchBoard isn't just about making money; it's about fostering holistic growth.
<p>Learn more at <a href={process.env.REACT_APP_DASH_URL}>www.WrenchBoard.com</a></p> <p>Learn more at <a href={process.env.REACT_APP_DASH_URL}>www.WrenchBoard.com</a></p>
</p> </p>
</div>
</div>
</div> </div>
</div>
</div> </div>
</div>
</section> </section>
</> </div>
); </div>
</div>
</>
);
} }
export default HeroAbout; export default HeroAbout;
+16 -18
View File
@@ -1,25 +1,23 @@
import React from 'react'; import React from 'react';
import AboutTextComponent from '../AboutText/AboutText'; import AboutTextComponent from '../AboutText/AboutText';
function ServicesAbout() { function ServicesAbout() {
return ( return (
<> <>
<section className="appie-services-2-area pt-90 pb-55" id="service"> <section className="appie-services-2-area pt-90 pb-55" id="service">
<div className="container"> <div className="container">
<div className="row align-items-end"> <div className="row align-items-end">
<div className="col-12 col-lg-8"> <div className="col-12 col-lg-8">
<div className="appie-section-title"> <div className="appie-section-title">
<h3 className="appie-title">Were driven by your values</h3> <h3 className="appie-title">Were driven by your values</h3>
{/*<p>The app provides design and digital marketing. </p>*/} {/* <p>{servicesContent.subTitle}</p> */}
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </section>
</section> </>
</> );
);
} }
export default ServicesAbout; export default ServicesAbout;
+65 -59
View File
@@ -11,66 +11,72 @@ import CustomSlider from '../customSlider/CustomSlider';
function HeroHomeOne() { function HeroHomeOne() {
var site = getConfig()[0]; var site = getConfig()[0];
return ( return (
<> <>
<section className="appie-hero-area"> <section className="appie-hero-area">
<div className="container"> <div className="container">
<div className="row align-items-center"> <div className="row align-items-center">
<div className="col-lg-6"> <div className="col-lg-6">
<div className="appie-hero-content"> <div className="appie-hero-content">
{/*<span>Welcome To WrenchBoard..</span>*/} {/*<span>Welcome To WrenchBoard..</span>*/}
<h1 className="appie-title"> <h1 className="appie-title">
Turn Chores into Exciting Challenges and Earn <span className='earn-rewards px-2'>Rewards!</span> Turn Chores into Exciting Challenges and Earn <span className='earn-rewards px-2'>Rewards!</span>
</h1> </h1>
<p> <p>
Your place to set family goals and reward achievements. Find tasks to earn from, or build a tasks portfolio and find others to perform tasks for you. </p> Your place to set family goals and reward achievements. Find tasks to earn from, or build a tasks portfolio and find others to perform tasks for you. </p>
<ul> <ul>
<li> <li>
<a href={process.env.REACT_APP_APPLE_APP} className="dark" target="_blank"> <a href={process.env.REACT_APP_APPLE_APP} className="dark" target="_blank">
<i className="fab fa-apple" /> Download for iOS <i className="fab fa-apple" /> Download for iOS
</a> </a>
</li> </li>
<li> <li>
<a className="item-2 light" href={process.env.REACT_APP_ANDROID_APP} target="_blank"> <a className="item-2 light" href={process.env.REACT_APP_ANDROID_APP} target="_blank">
<i className="fab fa-google-play" /> Download for <i className="fab fa-google-play" /> Download for
Android Android
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div className="col-lg-6"> <div className="col-lg-6">
<div className="appie-hero-thumb"> <div className="appie-hero-thumb">
<div <div
className="thumb wow animated fadeInUp" className="thumb wow animated fadeInUp"
data-wow-duration="2000ms" data-wow-duration="2000ms"
data-wow-delay="200ms" data-wow-delay="200ms"
> >
{/* <img src={heroThumbOne} alt="WrenchBoard" /> */} {/* <img src={heroThumbOne} alt="WrenchBoard" /> */}
<div style={{width: '350px', margin: 'auto'}}> <div style={{ width: '350px', margin: 'auto' }}>
<CustomSlider <CustomSlider
images={[heroThumbOne, heroThumbOne1, heroThumbOne]} images={[heroThumbOne, heroThumbOne1, heroThumbOne]}
speed='5' speed='5'
indicatorColor='#333' indicatorColor='#333'
/> />
</div> </div>
</div>
<div
className="thumb-2 wow animated fadeInRight"
data-wow-duration="2000ms"
data-wow-delay="600ms"
>
<img src={heroThumbTwo} alt="" />
</div>
</div>
</div>
</div>
</div> </div>
<div
</section> className="thumb-2 wow animated fadeInRight"
</> data-wow-duration="2000ms"
); data-wow-delay="600ms"
>
<img src={heroThumbTwo} alt="" />
</div>
</div>
</div>
</div>
</div>
<div
className="thumb-2 wow animated fadeInRight"
data-wow-duration="2000ms"
data-wow-delay="600ms"
>
<img src={heroThumbTwo} alt="" />
</div>
</section>
</>
);
} }
export default HeroHomeOne; export default HeroHomeOne;
+8 -5
View File
@@ -6,7 +6,12 @@ import IconFour from '../../assets/images/icon/reward.png';
function ServiceItem({ icon, title, description, index }) { function ServiceItem({ icon, title, description, index }) {
return ( return (
<div className="appie-single-service text-center mt-30 wow animated fadeInUp" data-wow-duration="2000ms" data-wow-delay={`${200 * (index + 1)}ms`} style={{ cursor: "default" }}> <div
className="appie-single-service text-center mt-30 wow animated fadeInUp"
data-wow-duration="2000ms"
data-wow-delay={`${200 * (index + 1)}ms`}
style={{ cursor: "default" }}
>
<div className="icon"> <div className="icon">
<img src={icon} alt={title} /> <img src={icon} alt={title} />
</div> </div>
@@ -47,9 +52,7 @@ function ServicesHomeOne({ className }) {
<div className="row justify-content-center"> <div className="row justify-content-center">
<div className="col-lg-8"> <div className="col-lg-8">
<div className="appie-section-title text-center"> <div className="appie-section-title text-center">
<h3 className="appie-title"> <h3 className="appie-title">{serviceTitle}</h3>
{serviceTitle}
</h3>
</div> </div>
</div> </div>
</div> </div>
@@ -70,4 +73,4 @@ function ServicesHomeOne({ className }) {
); );
} }
export default ServicesHomeOne; export default ServicesHomeOne;
+30 -8
View File
@@ -17,7 +17,12 @@ function TrafficHomeOne() {
<div className="row"> <div className="row">
{featuresContent.list?.map(({ icon, header, paragraph }, idx) => ( {featuresContent.list?.map(({ icon, header, paragraph }, idx) => (
<div className="col-lg-6 col-md-6" key={idx}> <div className="col-lg-6 col-md-6" key={idx}>
<div className={`appie-traffic-service features item-${idx + 1} mb-30`} style={{ paddingRight: "45px" }}> <div
className={`appie-traffic-service features item-${
idx + 1
} mb-30`}
style={{ paddingRight: "45px" }}
>
<div className="icon"> <div className="icon">
<i className={icon} /> <i className={icon} />
</div> </div>
@@ -67,11 +72,28 @@ export default TrafficHomeOne;
const featuresContent = { const featuresContent = {
title: "on WrenchBoard.", title: "on WrenchBoard.",
detail: "Performing task on WrenchBoard is easy. All you need is a free account.", detail:
"Performing task on WrenchBoard is easy. All you need is a free account.",
list: [ list: [
{ icon: "fal fa-check", header: "Free account", paragraph: "Get family access from parents, or create your free account." }, {
{ icon: "fal fa-check", header: "Suggest or Find Task", paragraph: "Suggest tasks to parents or pick from the market." }, icon: "fal fa-check",
{ icon: "fal fa-check", header: "Complete Task", paragraph: "Complete the task as specified." }, header: "Free account",
{ icon: "fal fa-check", header: "Reward", paragraph: "Get your reward as specified." }, paragraph: "Get family access from parents, or create your free account.",
] },
} {
icon: "fal fa-check",
header: "Suggest or Find Task",
paragraph: "Suggest tasks to parents or pick from the market.",
},
{
icon: "fal fa-check",
header: "Complete Task",
paragraph: "Complete the task as specified.",
},
{
icon: "fal fa-check",
header: "Reward",
paragraph: "Get your reward as specified.",
},
],
};
+80 -1
View File
@@ -96,4 +96,83 @@ function CustomSlider({images, speed, indicatorColor, indicatorClass}) {
) )
} }
export default CustomSlider export default CustomSlider
// import React, { useEffect, useState } from 'react';
// function CustomSlider({ images, speed, indicatorColor, indicatorClass }) {
// const [sliderCount, setSliderCount] = useState(0);
// const sliderStart = (count) => {
// if (count + 1 && typeof count === 'number') {
// return setSliderCount(count);
// }
// if (sliderCount >= images.length - 1) {
// return setSliderCount(0);
// }
// setSliderCount((prev) => prev + 1);
// };
// useEffect(() => {
// const sliderInterval = setInterval(() => {
// sliderStart();
// }, speed * 1000);
// return () => {
// clearInterval(sliderInterval);
// };
// }, [sliderCount, speed]);
// console.log("This is slider count", sliderCount)
// return (
// <div
// className=""
// style={{ width: '100%', margin: 'auto', position: 'relative', overflow: 'hidden' }}
// >
// <div className="" style={{ width: '100%', display: 'flex' }}>
// {images.map((image, index) => (
// <img
// key={index}
// src={image}
// alt="image"
// style={{
// minWidth: '100%',
// height: 'auto',
// position: 'relative',
// transition: 'opacity .9s',
// opacity: sliderCount == index ? '1' : '0',
// }}
// />
// ))}
// </div>
// <div
// className="custom_indicators"
// style={{
// margin: '10px auto',
// display: 'flex',
// gap: '10px',
// justifyContent: 'center',
// }}
// >
// {images.map((image, index) => (
// <div
// key={index}
// onClick={() => sliderStart(index)}
// className={`custom_indicator ${indicatorClass}`}
// style={{
// backgroundColor: sliderCount === index ? `${indicatorColor}` : '',
// width: '15px',
// height: '15px',
// borderRadius: '999px',
// border: `1px solid ${indicatorColor}`,
// cursor: 'pointer',
// }}
// ></div>
// ))}
// </div>
// </div>
// );
// }
// export default CustomSlider;