Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f58e8834fb | |||
| 1a829789d4 | |||
| 84dccfca50 | |||
| 49e3fc5810 | |||
| e4b6391ed2 | |||
| 3abbdd32eb | |||
| e4a5c2682e | |||
| 21abc93a04 | |||
| d51bbdbc29 |
@@ -28,21 +28,14 @@ export default function VerifyYou() {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="input-area">
|
<div className="input-area">
|
||||||
<div className="mb-5">
|
<div className="mb-5">
|
||||||
<p className="text-[14px] leading-[19px] text-center text-[#181c32]">
|
<p className="text-[14px] leading-[19px] text-center text-[#181c32]">
|
||||||
<b>Verify Email.</b> Help us secure your WrenchBoard account
|
Please <span className="font-semibold tracking-wide">verify your email</span> to secure your account.
|
||||||
by verifying your email registration address. Verification
|
|
||||||
will let you access all of WrenchBoard's features.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-5">
|
<div className="mb-5">
|
||||||
<p className="text-[14px] leading-[19px] text-center text-[#181c32]">
|
<p className="text-[14px] leading-[19px] text-center text-[#181c32]">
|
||||||
If you do not receive the confirmation message within a few
|
If you don't see the confirmation email, check your <span className='font-semibold tracking-wide'>Junk</span> or <span className='font-semibold tracking-wide'>Spam</span> folder and mark it as "Not Junk"
|
||||||
minutes of signing up, please check your Junk E-mail folder
|
|
||||||
just in case the confirmation email got delivered there
|
|
||||||
instead of your inbox. If so, select the confirmation
|
|
||||||
message and click Not Junk, which will allow future messages
|
|
||||||
to get through.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
|
import { useSelector } from "react-redux";
|
||||||
import { toast } from "react-toastify";
|
import { toast } from "react-toastify";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import ModalCom from "../../Helpers/ModalCom";
|
import ModalCom from "../../Helpers/ModalCom";
|
||||||
@@ -9,6 +10,11 @@ import LockJob from "./LockJob";
|
|||||||
|
|
||||||
const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduct }) => {
|
const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduct }) => {
|
||||||
|
|
||||||
|
let { jobLists } = useSelector((state) => state.jobLists);
|
||||||
|
const interestCount = jobLists?.interest_list?.filter(item => item.job_uid == details.job_uid);
|
||||||
|
// console.log('interestList', interest_count)
|
||||||
|
// console.log('MEMO', jobLists?.interest_list, datas.job_uid)
|
||||||
|
|
||||||
let {sendJobInterestToOwner} = SocketValues() // function to emit job interest request
|
let {sendJobInterestToOwner} = SocketValues() // function to emit job interest request
|
||||||
const emitOfferInterest = () => {
|
const emitOfferInterest = () => {
|
||||||
let message = {
|
let message = {
|
||||||
@@ -326,7 +332,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
|
|||||||
|
|
||||||
<div className="text-slate-900">
|
<div className="text-slate-900">
|
||||||
<p className="flex items-center tracking-wide">
|
<p className="flex items-center tracking-wide">
|
||||||
<span className="job-label">Interest: </span> <b className="ml-1">{details.interest_count}</b>
|
<span className="job-label">Interest: </span> <b className="ml-1">{interestCount.length > 0 ? interestCount[0].interest_count : '0'}</b>
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p className="my-1 flex flex-col">
|
<p className="my-1 flex flex-col">
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import LoadingSpinner from "../Spinners/LoadingSpinner";
|
|||||||
import { Form, Formik } from "formik";
|
import { Form, Formik } from "formik";
|
||||||
import * as Yup from "yup";
|
import * as Yup from "yup";
|
||||||
import ReferralTable from "../MyWallet/WalletComponent/ReferralTable";
|
import ReferralTable from "../MyWallet/WalletComponent/ReferralTable";
|
||||||
|
import TabButton from "../customTabs/TabButton";
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
ref_email: Yup.string()
|
ref_email: Yup.string()
|
||||||
@@ -105,13 +106,27 @@ function ReferralDisplay() {
|
|||||||
sendReferralMsg({...values}); // FUNCTION TO SEND REFERRAL MESSAGE
|
sendReferralMsg({...values}); // FUNCTION TO SEND REFERRAL MESSAGE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [selectedTab, setSelectedTab] = useState("Send Referral");
|
||||||
|
const tabs = [ //STATE FOR SWITCHING BETWEEN TABS
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: "Send Referral",
|
||||||
|
iconName: "history",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: "Referral List",
|
||||||
|
iconName: "history",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
allReferrals();
|
allReferrals();
|
||||||
}, [refHistoryReload]);
|
}, [refHistoryReload]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="content-wrapper w-full lg:flex xl:space-x-8 bottomMargin">
|
<>
|
||||||
<div className="lg:w-2/2 w-full mb-10 lg:mb-0">
|
<div className='w-full'>
|
||||||
<div className="sm:flex justify-between items-center mb-6">
|
<div className="sm:flex justify-between items-center mb-6">
|
||||||
<div className="mb-5 sm:mb-0">
|
<div className="mb-5 sm:mb-0">
|
||||||
<h1 className="text-26 font-bold inline-flex gap-3 text-dark-gray dark:text-white items-center">
|
<h1 className="text-26 font-bold inline-flex gap-3 text-dark-gray dark:text-white items-center">
|
||||||
@@ -119,111 +134,138 @@ function ReferralDisplay() {
|
|||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div className="referral w-full md:p-8 p-4 bg-white dark:bg-dark-white rounded-2xl shadow">
|
<div className="w-full h-full p-4 bg-white dark:bg-dark-white rounded-2xl section-shadow lg:flex lg:px-10 px-4 justify-between">
|
||||||
<h2 className="mb-4 text-slate-900 dark:text-white text-xl lg:text-2xl font-medium">
|
<div className="content-tab-items lg:w-[230px] w-full mr-2">
|
||||||
Send Referral
|
<div className='overflow-hidden mb-5 lg:mb-0 py-2 lg:py-8'>
|
||||||
</h2>
|
{tabs.map((item) => (
|
||||||
<Formik
|
<div key={item.id} className='w-full'>
|
||||||
initialValues={initialValues}
|
<TabButton
|
||||||
validationSchema={validationSchema}
|
key={item.id}
|
||||||
onSubmit={handleSubmit}
|
item={item.title}
|
||||||
>
|
iconName={item.iconName}
|
||||||
{(props) => (
|
selectedTab={selectedTab}
|
||||||
<Form className="referral-info">
|
setSelectedTab={setSelectedTab}
|
||||||
<div className="block md:mb-6 md:flex gap-10">
|
/>
|
||||||
{/* Firstname */}
|
</div>
|
||||||
<div className="field w-full mb-6 md:mb-0">
|
))}
|
||||||
<InputCom
|
</div>
|
||||||
fieldClass="px-6"
|
|
||||||
label="Firstname"
|
|
||||||
type="text"
|
|
||||||
name="ref_firstname"
|
|
||||||
placeholder="Firstname"
|
|
||||||
value={props.values.ref_firstname}
|
|
||||||
inputHandler={props.handleChange}
|
|
||||||
blurHandler={props.handleBlur}
|
|
||||||
/>
|
|
||||||
{props.errors.ref_firstname &&
|
|
||||||
props.touched.ref_firstname && (
|
|
||||||
<p className="text-sm text-red-500">
|
|
||||||
{props.errors.ref_firstname}
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Lastname */}
|
|
||||||
<div className="field w-full mb-6 md:mb-0">
|
|
||||||
<InputCom
|
|
||||||
fieldClass="px-6"
|
|
||||||
label="Lastname"
|
|
||||||
type="text"
|
|
||||||
name="ref_lastname"
|
|
||||||
placeholder="Lastname"
|
|
||||||
value={props.values.ref_lastname}
|
|
||||||
inputHandler={props.handleChange}
|
|
||||||
blurHandler={props.handleBlur}
|
|
||||||
/>
|
|
||||||
{props.errors.ref_lastname &&
|
|
||||||
props.touched.ref_lastname && (
|
|
||||||
<p className="text-sm text-red-500">
|
|
||||||
{props.errors.ref_lastname}
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="field w-full mb-6">
|
|
||||||
<InputCom
|
|
||||||
fieldClass="px-6"
|
|
||||||
label="Email"
|
|
||||||
type="text"
|
|
||||||
name="ref_email"
|
|
||||||
placeholder="Email"
|
|
||||||
value={props.values.ref_email}
|
|
||||||
inputHandler={props.handleChange}
|
|
||||||
blurHandler={props.handleBlur}
|
|
||||||
/>
|
|
||||||
{props.errors.ref_email && props.touched.ref_email && (
|
|
||||||
<p className="text-sm text-red-500">
|
|
||||||
{props.errors.ref_email}
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
{error.message != "" && (
|
|
||||||
<p className="text-base text-red-500 py-2">{error.message}</p>
|
|
||||||
)}
|
|
||||||
<div className="referral-btn flex justify-end items-center py-4 border-b-4">
|
|
||||||
{error.loading ? (
|
|
||||||
<LoadingSpinner size="6" color="sky-blue" />
|
|
||||||
) : (
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="px-2 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
|
||||||
>
|
|
||||||
Send Message
|
|
||||||
</button>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</Form>
|
|
||||||
)}
|
|
||||||
</Formik>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div className="w-[1px] bg-[#E3E4FE] dark:bg-[#a7a9b533] mr-10"></div>
|
||||||
|
<div className="flex-1 overflow-y-auto min-h-[520px]">
|
||||||
|
<>
|
||||||
|
{selectedTab == 'Send Referral' &&
|
||||||
|
<div className="referral w-full p-4">
|
||||||
|
<h2 className="mb-4 text-slate-900 dark:text-white text-xl lg:text-2xl font-medium">
|
||||||
|
Send Referral
|
||||||
|
</h2>
|
||||||
|
<Formik
|
||||||
|
initialValues={initialValues}
|
||||||
|
validationSchema={validationSchema}
|
||||||
|
onSubmit={handleSubmit}
|
||||||
|
>
|
||||||
|
{(props) => (
|
||||||
|
<Form className="referral-info">
|
||||||
|
<div className="block md:mb-6 md:flex gap-10">
|
||||||
|
{/* Firstname */}
|
||||||
|
<div className="field w-full mb-6 md:mb-0">
|
||||||
|
<InputCom
|
||||||
|
fieldClass="px-6"
|
||||||
|
label="Firstname"
|
||||||
|
type="text"
|
||||||
|
name="ref_firstname"
|
||||||
|
placeholder="Firstname"
|
||||||
|
value={props.values.ref_firstname}
|
||||||
|
inputHandler={props.handleChange}
|
||||||
|
blurHandler={props.handleBlur}
|
||||||
|
/>
|
||||||
|
{props.errors.ref_firstname &&
|
||||||
|
props.touched.ref_firstname && (
|
||||||
|
<p className="text-sm text-red-500">
|
||||||
|
{props.errors.ref_firstname}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="w-full md:p-8 p-4 bg-white dark:bg-dark-white rounded-2xl shadow">
|
{/* Lastname */}
|
||||||
<h2 className="mb-2 text-slate-900 dark:text-white text-xl lg:text-2xl font-medium">
|
<div className="field w-full mb-6 md:mb-0">
|
||||||
Referral List
|
<InputCom
|
||||||
</h2>
|
fieldClass="px-6"
|
||||||
{referralList.loading ? (
|
label="Lastname"
|
||||||
<LoadingSpinner size="32" color="sky-blue" />
|
type="text"
|
||||||
) : (
|
name="ref_lastname"
|
||||||
<ReferralTable history={referralList} />
|
placeholder="Lastname"
|
||||||
)}
|
value={props.values.ref_lastname}
|
||||||
|
inputHandler={props.handleChange}
|
||||||
|
blurHandler={props.handleBlur}
|
||||||
|
/>
|
||||||
|
{props.errors.ref_lastname &&
|
||||||
|
props.touched.ref_lastname && (
|
||||||
|
<p className="text-sm text-red-500">
|
||||||
|
{props.errors.ref_lastname}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="field w-full mb-6">
|
||||||
|
<InputCom
|
||||||
|
fieldClass="px-6"
|
||||||
|
label="Email"
|
||||||
|
type="text"
|
||||||
|
name="ref_email"
|
||||||
|
placeholder="Email"
|
||||||
|
value={props.values.ref_email}
|
||||||
|
inputHandler={props.handleChange}
|
||||||
|
blurHandler={props.handleBlur}
|
||||||
|
/>
|
||||||
|
{props.errors.ref_email && props.touched.ref_email && (
|
||||||
|
<p className="text-sm text-red-500">
|
||||||
|
{props.errors.ref_email}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
{error.message != "" && (
|
||||||
|
<p className="text-base text-red-500 py-2">{error.message}</p>
|
||||||
|
)}
|
||||||
|
<div className="referral-btn flex justify-end items-center py-4">
|
||||||
|
{error.loading ? (
|
||||||
|
<LoadingSpinner size="6" color="sky-blue" />
|
||||||
|
) : (
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="px-2 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
||||||
|
>
|
||||||
|
Send Message
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</Form>
|
||||||
|
)}
|
||||||
|
</Formik>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
{selectedTab == 'Referral List' &&
|
||||||
|
<>
|
||||||
|
<div className="w-full p-4">
|
||||||
|
<h2 className="mb-2 text-slate-900 dark:text-white text-xl lg:text-2xl font-medium">
|
||||||
|
Referral List
|
||||||
|
</h2>
|
||||||
|
{referralList.loading ? (
|
||||||
|
<LoadingSpinner size="22" color="sky-blue" />
|
||||||
|
) : (
|
||||||
|
<ReferralTable history={referralList} />
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
</>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -344,11 +344,11 @@ function NewJobListPopout({
|
|||||||
{selectedTab == 'family' ?
|
{selectedTab == 'family' ?
|
||||||
'Assign to family'
|
'Assign to family'
|
||||||
: selectedTab == 'public' ?
|
: selectedTab == 'public' ?
|
||||||
'Offer this job to public'
|
'Place in Market'
|
||||||
: selectedTab == 'individual' ?
|
: selectedTab == 'individual' ?
|
||||||
'Offer this job to individual'
|
'Assign to individual'
|
||||||
: selectedTab == 'group' ?
|
: selectedTab == 'group' ?
|
||||||
'Offer this job to your Group'
|
'Preferred List'
|
||||||
:
|
:
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export default function AssignToFamily({
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-3 mb-1 flex justify-end items-center">
|
<div className="mt-3 mb-1 flex justify-end items-center">
|
||||||
<button
|
<button
|
||||||
className={`px-4 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white`}
|
className={`uppercase px-4 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white`}
|
||||||
type="submit"
|
type="submit"
|
||||||
name='family'
|
name='family'
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -48,14 +48,14 @@ export default function AssignToGroup({
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-3 mb-1 flex justify-end items-center">
|
<div className="mt-3 mb-1 flex justify-end items-center">
|
||||||
<button
|
<button
|
||||||
className={`px-4 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white`}
|
className={`uppercase px-4 h-11 flex justify-center items-center btn-gradient text-sm rounded-full text-white`}
|
||||||
type="submit"
|
type="submit"
|
||||||
name='group'
|
name='group'
|
||||||
>
|
>
|
||||||
{loader?.jobFields ?
|
{loader?.jobFields ?
|
||||||
<LoadingSpinner size={5} />
|
<LoadingSpinner size={5} />
|
||||||
:
|
:
|
||||||
'Send Order to Group'
|
'Send Task to Group'
|
||||||
}
|
}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export default function AssignToIndividual({
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-3 mb-1 flex justify-end items-center">
|
<div className="mt-3 mb-1 flex justify-end items-center">
|
||||||
<button
|
<button
|
||||||
className={`px-4 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white`}
|
className={`uppercase px-4 h-11 flex justify-center items-center btn-gradient text-sm rounded-full text-white`}
|
||||||
type="submit"
|
type="submit"
|
||||||
name='individual'
|
name='individual'
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -102,14 +102,14 @@ export default function AssignToPublic({
|
|||||||
</div>
|
</div>
|
||||||
<div className="mt-3 mb-1 flex justify-end items-center">
|
<div className="mt-3 mb-1 flex justify-end items-center">
|
||||||
<button
|
<button
|
||||||
className={`px-4 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white`}
|
className={`uppercase px-4 h-11 flex justify-center items-center btn-gradient text-sm rounded-full text-white`}
|
||||||
type="submit"
|
type="submit"
|
||||||
name='public'
|
name='public'
|
||||||
>
|
>
|
||||||
{loader?.jobFields ?
|
{loader?.jobFields ?
|
||||||
<LoadingSpinner size={5} />
|
<LoadingSpinner size={5} />
|
||||||
:
|
:
|
||||||
'Show Task to Public'
|
'Place Task to the Market'
|
||||||
}
|
}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ class usersService {
|
|||||||
// }
|
// }
|
||||||
getHeroJBanners() {
|
getHeroJBanners() {
|
||||||
var postData = {
|
var postData = {
|
||||||
uuid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
page: 0,
|
page: 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user