Compare commits

...

4 Commits

14 changed files with 144 additions and 152 deletions
+6 -2
View File
@@ -14,7 +14,9 @@ export default function SocketIOContextProvider({children}) {
// // Messages States // // Messages States
// const [message, setMessage] = useState(""); // const [message, setMessage] = useState("");
const [socketMsgReceived, setSocketMsgReceived] = useState({type:'', msg:''}); const [socketMsgReceived, setSocketMsgReceived] = useState('');
const [updateMarket, setUpdateMarket] = useState(false)
const joinRoom = (room) => { const joinRoom = (room) => {
if (room !== "") { if (room !== "") {
@@ -24,7 +26,8 @@ export default function SocketIOContextProvider({children}) {
useEffect(() => { useEffect(() => {
socket.on("received_refreshmarket_jobs", (data) => { socket.on("received_refreshmarket_jobs", (data) => {
setSocketMsgReceived({type: 'market', msg: data?.message}); setSocketMsgReceived(data?.message);
setUpdateMarket(prev => !prev)
}); });
}, [socket]); }, [socket]);
@@ -33,6 +36,7 @@ export default function SocketIOContextProvider({children}) {
joinRoom, joinRoom,
setSocketMsgReceived, setSocketMsgReceived,
socketMsgReceived, socketMsgReceived,
updateMarket,
} }
return ( return (
+3 -3
View File
@@ -8381,7 +8381,7 @@ blockquote cite {
/* interface images */ /* interface images */
.interface_section .owl-item .screen_frame_img img { .interface_section .owl-item .screen_frame_img img {
transform: scale(.9); transform: scale(.9);
border: 2px solid #000; /* border: 2px solid #000; */
border-radius: 20px; border-radius: 20px;
transition: 1s all; transition: 1s all;
margin: 0 auto; margin: 0 auto;
@@ -8391,6 +8391,6 @@ blockquote cite {
.interface_section .owl-item.center .screen_frame_img img { .interface_section .owl-item.center .screen_frame_img img {
transform: scale(1); transform: scale(1);
border: 3px solid #000; /* border: 3px solid #000;
padding: 5px; padding: 5px; */
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 KiB

+4 -18
View File
@@ -2,22 +2,16 @@ import React, { useState, useEffect } from 'react';
import blogOne from '../../assets/images/blog-1.jpg'; import blogOne from '../../assets/images/blog-1.jpg';
import blogTwo from '../../assets/images/blog-2.jpg'; import blogTwo from '../../assets/images/blog-2.jpg';
import blogThree from '../../assets/images/blog-3.jpg'; import blogThree from '../../assets/images/blog-3.jpg';
import JobsData from '../../Services/JobsData'; // import JobsData from '../../Services/JobsData';
import getConfig from './../../Config/config' import getConfig from './../../Config/config'
import CountDownTimer from '../Helper/CountDownTimer'; import CountDownTimer from '../Helper/CountDownTimer';
import { SocketValues } from '../../Contexts/SocketIOContext';
let CurrentJobsHero = () => {
let {socketMsgReceived} = SocketValues() // destructure FROM SOCKET
let CurrentJobsHero = ({jobs}) => {
var site = getConfig()[0]; var site = getConfig()[0];
var dashUrl = process.env.REACT_APP_DASH_URL; var dashUrl = process.env.REACT_APP_DASH_URL;
let [jobs, setJobs] = useState([])
function titleLen(title){ function titleLen(title){
let maxl = 45; let maxl = 45;
title.replace('/', ' '); title.replace('/', ' ');
@@ -28,14 +22,6 @@ let CurrentJobsHero = () => {
return (title.length > maxl)? title.substring(0,maxl-2)+'...': title; return (title.length > maxl)? title.substring(0,maxl-2)+'...': title;
} }
useEffect(()=>{
JobsData().then(res => {
setJobs(res.data.result_list);
}).catch(err => {
console.log('startjoblist error', err)
})
},[socketMsgReceived])
return ( return (
<> <>
{jobs.length < 1 ? {jobs.length < 1 ?
@@ -84,7 +70,7 @@ let CurrentJobsHero = () => {
{/*</div>*/} {/*</div>*/}
<div className='lmoreTxt d-flex justify-content-between align-items-center'> <div className='lmoreTxt d-flex justify-content-between align-items-center'>
<p className='text-danger' style={{fontSize: '12px'}}>{hourRemaining > 24 ? `available in the next ${hourRemaining%24} ${hourRemaining%24 > 1 ? 'days':'day'}` : `available in the next 12hrs 30mins`}</p> <p className='text-danger' style={{fontSize: '12px'}}>{hourRemaining > 24 ? `available in the next ${hourRemaining%24} ${hourRemaining%24 > 1 ? 'days':'day'}` : `available in the next 12hrs 30mins`}</p>
<a href={dashUrl} className=''> <a href={process.env.REACT_APP_DASH_URL_LOGIN} className=''>
Learn More <i className="fal fa-arrow-right" /> Learn More <i className="fal fa-arrow-right" />
</a> </a>
</div> </div>
@@ -114,7 +100,7 @@ let CurrentJobsHero = () => {
Find more opportunities at our marketplace. Find more opportunities at our marketplace.
</a> </a>
</h3> </h3>
<a className='align-self-end' href="https://users.wrenchboard.com/login"> <a className='align-self-end' href="https://dashboard.wrenchboard.com/login">
Login now <i className="fal fa-arrow-right" /> Login now <i className="fal fa-arrow-right" />
</a> </a>
</div> </div>
+14 -7
View File
@@ -39,37 +39,44 @@ export default function FeaturedScreen() {
<OwlCarousel id="screen_slider" {...screen_slider} className="owl-carousel owl-theme owl-loaded owl-drag"> <OwlCarousel id="screen_slider" {...screen_slider} className="owl-carousel owl-theme owl-loaded owl-drag">
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_1.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_1.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_1.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_2.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_2.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_2.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_3.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_3.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_3.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_4.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_4.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_6.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_5.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_5.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_4.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_6.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_7.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_7.png')} alt="image" />
</div> </div>
</div> </div>
<div className="item"> <div className="item">
<div className="screen_frame_img"> <div className="screen_frame_img">
<img src={localImgLoad('images/slider/slider_7.png')} alt="image" /> {/* <img src={localImgLoad('images/slider/slider_7.png')} alt="image" /> */}
<img src={localImgLoad('images/slider/app_sliders/screen_5.png')} alt="image" />
</div> </div>
</div> </div>
</OwlCarousel> </OwlCarousel>
+2 -2
View File
@@ -2,7 +2,7 @@ import React from 'react';
import heroThumb from '../../assets/images/hero-thumb-7.png'; import heroThumb from '../../assets/images/hero-thumb-7.png';
import CurrentJobsHero from "./CurrentJobsHero"; import CurrentJobsHero from "./CurrentJobsHero";
function HomeNigeria() { function HomeNigeria({jobs}) {
return ( return (
<> <>
<section className="appie-hero-area"> <section className="appie-hero-area">
@@ -46,7 +46,7 @@ function HomeNigeria() {
{/* <img src={heroThumb} alt="" />*/} {/* <img src={heroThumb} alt="" />*/}
{/* </div>*/} {/* </div>*/}
{/*</div>*/} {/*</div>*/}
<CurrentJobsHero /> <CurrentJobsHero jobs={jobs} />
</div> </div>
</div> </div>
</div> </div>
+98 -117
View File
@@ -1,140 +1,121 @@
import React, { Component } from 'react'; import React, { Component, useEffect, useState } from 'react';
import blogOne from '../../assets/images/blog-1.jpg'; import blogOne from '../../assets/images/blog-1.jpg';
import blogTwo from '../../assets/images/blog-2.jpg'; import blogTwo from '../../assets/images/blog-2.jpg';
import blogThree from '../../assets/images/blog-3.jpg'; import blogThree from '../../assets/images/blog-3.jpg';
import JobsData from '../../Services/JobsData'; // import JobsData from '../../Services/JobsData';
import getConfig from './../../Config/config' import getConfig from './../../Config/config'
import CountDownTimer from '../Helper/CountDownTimer'; import CountDownTimer from '../Helper/CountDownTimer';
class RecentJobsOne extends Component { let RecentJobsOne = ({jobs}) => {
constructor() {
// debugger; var site = getConfig()[0];
super();
this.state = { jobsDataResults: [] }; var dashUrl = process.env.REACT_APP_DASH_URL;
function titleLen(title){
let maxl = 45;
title.replace('/', ' ');
title.replace('www.', '');
title.replace('.com', '');
title.replace('http//', '');
return (title.length > maxl)? title.substring(0,maxl-2)+'...': title;
} }
async componentDidMount(){ return (
// debugger; <>
JobsData().then(res => { {jobs.length < 1 ?
this.setState({jobsDataResults:res.data.result_list}); null
}).catch(err => { :
console.log('startjoblist error', err) <section className="appie-blog-area pt-90 pb-95">
}) <div className="container">
} <div className="row">
<div className="col-lg-12">
titleLen(title){ <div className="appie-section-title text-center">
let maxl = 45; <h3 className="appie-title">Current Projects</h3>
title.replace('/', ' ');
title.replace('www.', '');
title.replace('.com', '');
title.replace('http//', '');
return (title.length > maxl)? title.substring(0,maxl-2)+'...': title;
}
// if (jobsDataResults ()== null){
// return null;
// }
render() {
var site = getConfig()[0];
if ( this.state.jobsDataResults== undefined ){
return null;
}
var dashUrl = process.env.REACT_APP_DASH_URL;
if (this.state.jobsDataResults.length == 0){
return <></>;
}
return (
<>
<section className="appie-blog-area pt-90 pb-95">
<div className="container">
<div className="row">
<div className="col-lg-12">
<div className="appie-section-title text-center">
<h3 className="appie-title">Current Projects</h3>
</div>
</div>
</div> </div>
<div className="row"> </div>
</div>
<div className="row">
{ {
this.state.jobsDataResults.map(i => { jobs.map((i, index) => {
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var postDt = new Date(i.expire).toLocaleDateString("en-US", options); var postDt = new Date(i.expire).toLocaleDateString("en-US", options);
if(index < 24){
return (<div className="col-md-6 col-xl-3"> return (
<div <div className="col-md-6 col-xl-3">
className="appie-single-service container-fluid mt-30 wow animated fadeInUp boxBorder d-flex align-items-center" <div
data-wow-duration="3000ms" className="appie-single-service container-fluid mt-30 wow animated fadeInUp boxBorder d-flex align-items-center"
data-wow-delay="200ms" data-wow-duration="3000ms"
> data-wow-delay="200ms"
<div className="content d-flex flex-column justify-content-between" style={{height: '200px', width: '100%'}}> >
<div className="titleBox"> <div className="content d-flex flex-column justify-content-between" style={{height: '250px', width: '100%'}}>
<h3 className="title"> <div className="titleBox">
<a href={dashUrl}> <h3 className="title">
<span className='font_black'>{this.titleLen(i.title)} </span> <a href={dashUrl}>
</a> <span className='font_black'>{titleLen(i.title)} </span>
</h3> </a>
</h3>
</div>
<div className='p-0 container-fluid'>
<div><hr /></div>
<div className="blog-meta">
<ul>
<li className="expire">
<a href={dashUrl} className='d-block'>
<div className='font_red d-flex align-items-start'>
<div className='pr-2'>Expires :</div>
<CountDownTimer targetDate={postDt}/>
</div>
</a>
</li>
</ul>
</div> </div>
<div className='p-0 container-fluid'> <div className='lmoreTxt d-flex justify-content-end align-items-center'>
<div><hr /></div> <a href={process.env.REACT_APP_DASH_URL_LOGIN}>
<div className="blog-meta"> Learn More <i className="fal fa-arrow-right" />
<ul> </a>
<li className="expire">
<a href={dashUrl} className='d-block'>
<div className='font_red d-flex align-items-start'>
<div className='pr-2'>Expires :</div>
<CountDownTimer targetDate={postDt}/>
</div>
</a>
</li>
</ul>
</div>
<div className='lmoreTxt d-flex justify-content-end align-items-center'>
<a href={dashUrl}>
Learn More <i className="fal fa-arrow-right" />
</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>)
})
}
<div className="col-lg-3 col-md-6">
<div
className="appie-blog-item mt-30 wow animated fadeInUp"
data-wow-duration="3000ms"
data-wow-delay="600ms"
>
<div className="content">
<h3 className="title">
<a href={dashUrl}>
Find more opportunities at our marketplace.
</a>
</h3>
<a href="https://dashboard.wrenchboard.com/login">
Login now <i className="fal fa-arrow-right" />
</a>
</div> </div>
</div> </div>
</div> )
}
})
}
<div className="col-lg-3 col-md-6">
<div
className="appie-blog-item mt-30 wow animated fadeInUp"
data-wow-duration="3000ms"
data-wow-delay="600ms"
>
<div className="content">
<h3 className="title">
<a href={dashUrl}>
Find more opportunities at our marketplace.
</a>
</h3>
<a href="https://dashboard.wrenchboard.com/login">
Login now <i className="fal fa-arrow-right" />
</a>
</div>
</div> </div>
</div> </div>
</section>
</> </div>
); </div>
} </section>
}
</>
);
} }
export default RecentJobsOne; export default RecentJobsOne;
+17 -3
View File
@@ -1,4 +1,4 @@
import React from 'react'; import React, { useEffect, useState } from 'react';
import useToggle from '../../Hooks/useToggle'; import useToggle from '../../Hooks/useToggle';
import BackToTop from '../BackToTop'; import BackToTop from '../BackToTop';
import Drawer from '../Mobile/Drawer'; import Drawer from '../Mobile/Drawer';
@@ -19,20 +19,34 @@ import WrenchBoardHome from './WrenchBoardHome';
import RecentJobsOne from './RecentJobsOne'; import RecentJobsOne from './RecentJobsOne';
import HomeNigeria from "./HomeNigeria"; import HomeNigeria from "./HomeNigeria";
import FeaturedScreen from './FeaturedScreen'; import FeaturedScreen from './FeaturedScreen';
import { SocketValues } from '../../Contexts/SocketIOContext';
import JobsData from '../../Services/JobsData';
//import BlogData from './../../Services/BlogData'; //import BlogData from './../../Services/BlogData';
function HomeOne() { function HomeOne() {
let {updateMarket} = SocketValues() // destructure FROM SOCKET
const [drawer, drawerAction] = useToggle(false); const [drawer, drawerAction] = useToggle(false);
let [jobs, setJobs] = useState([])
useEffect(()=>{
JobsData().then(res => {
setJobs(res.data.result_list);
}).catch(err => {
console.log('startjoblist error', err)
})
},[updateMarket])
return ( return (
<> <>
<Drawer drawer={drawer} action={drawerAction.toggle} /> <Drawer drawer={drawer} action={drawerAction.toggle} />
<HomeOneHeader action={drawerAction.toggle} /> <HomeOneHeader action={drawerAction.toggle} />
<HomeNigeria /> <HomeNigeria jobs={jobs} />
{/*<HeroHomeOne />*/} {/*<HeroHomeOne />*/}
<ServicesHomeOne /> <ServicesHomeOne />
<RecentJobsOne /> <RecentJobsOne jobs={jobs} />
<FeaturesHomeOne /> <FeaturesHomeOne />
{/*<FaqHomeOne />*/} {/*<FaqHomeOne />*/}
{/*<TrafficHomeOne />*/} {/*<TrafficHomeOne />*/}