Compare commits

...

6 Commits

5 changed files with 45 additions and 32 deletions
-1
View File
@@ -127,7 +127,6 @@ function AddJob({ popUpHandler, categories }) {
getUserCountry(); getUserCountry();
}, []); }, []);
console.log("This is for AddJob >>", categories);
return ( return (
<div className="add-job p-5 w-full bg-white rounded-md flex flex-col justify-between"> <div className="add-job p-5 w-full bg-white rounded-md flex flex-col justify-between">
+2 -2
View File
@@ -1,7 +1,7 @@
import React, { useState } from "react"; import React, { useState } from "react";
import useToggle from "../../../hooks/useToggle"; import useToggle from "../../../hooks/useToggle";
function SelectBox({ datas = [], className, action, contentBodyClasses }) { function SelectBox({ datas = [], className, action, contentBodyClasses, position }) {
const [item, setItem] = useState(datas[0]); const [item, setItem] = useState(datas[0]);
// custom hook // custom hook
const [toggle, setToggle] = useToggle(false); const [toggle, setToggle] = useToggle(false);
@@ -49,7 +49,7 @@ function SelectBox({ datas = [], className, action, contentBodyClasses }) {
<div <div
style={{ boxShadow: "0px 4px 87px 0px #0000002B" }} style={{ boxShadow: "0px 4px 87px 0px #0000002B" }}
className={`drop-down-content w-[120px] bg-white dark:bg-dark-white rounded-[4px] p-3 absolute right-0 top-[100%] z-20 ${ className={`drop-down-content w-[120px] bg-white dark:bg-dark-white rounded-[4px] p-3 absolute ${position =='left' ? 'left-0' : 'right-0'} top-[100%] z-20 ${
toggle ? "active" : "" toggle ? "active" : ""
} ${contentBodyClasses || ""}`} } ${contentBodyClasses || ""}`}
> >
+26 -17
View File
@@ -3,6 +3,7 @@ import DataIteration from "../Helpers/DataIteration";
import AvailableJobsCard from "../Cards/AvailableJobsCard"; import AvailableJobsCard from "../Cards/AvailableJobsCard";
import ListView from '../../assets/images/list-view.png' import ListView from '../../assets/images/list-view.png'
import GridView from '../../assets/images/grid-view.svg' import GridView from '../../assets/images/grid-view.svg'
import SelectBox from "../Helpers/SelectBox";
export default function MainSection({ export default function MainSection({
className, className,
@@ -27,6 +28,16 @@ export default function MainSection({
const tabHandler = (value) => { const tabHandler = (value) => {
setTab(value); setTab(value);
}; };
// Handles the category selection on mobile view
const handleSetCategory = (value) => {
for (let i in marketCategories) {
if (marketCategories[i] == value) {
setTab(i);
}
}
};
useEffect(() => { useEffect(() => {
if (tab === "All") { if (tab === "All") {
setProducts(marketPlaceProduct); setProducts(marketPlaceProduct);
@@ -41,21 +52,9 @@ export default function MainSection({
return ( return (
<div className={`market-place-section w-full ${className || ""}`}> <div className={`market-place-section w-full ${className || ""}`}>
<div className="market-place-wrapper w-full"> <div className="market-place-wrapper w-full">
{/* contentDisplay toggler */} <div className="filter-navigate-area flex justify-between items-center mb-8">
<div className="w-full flex items-center justify-end"> <div className="tab-item w-full flex items-center">
<div className="p-2 w-[35px] h-[35px] bg-white dark:bg-slate-200 rounded-lg"> <div className="hidden lg:flex md:space-x-8 space-x-2">
<img
title={contentDisplay=='grid'? 'list view' : 'grid view'}
onClick={()=>setContentDisplay((prev)=>prev=='grid'? 'list' : 'grid')}
src={contentDisplay=='grid'? ListView : GridView}
className="w-full h-full cursor-pointer" alt="view"
/>
</div>
</div>
{/* end of contentDisplay toggler */}
<div className="filter-navigate-area lg:flex justify-between mb-8 items-center">
<div className="tab-item lg:mb-0 mb-5">
<div className="md:flex md:space-x-8 space-x-2">
{mappedArray.map(({ key, value }) => ( {mappedArray.map(({ key, value }) => (
<span <span
key={key} key={key}
@@ -70,16 +69,26 @@ export default function MainSection({
</span> </span>
))} ))}
</div> </div>
{/* market categories on screen smaller than large screen */}
<div className="w-[80%] lg:hidden">
<SelectBox
action={handleSetCategory}
datas={Object.values(marketCategories)}
className="Update-table-dropdown"
contentBodyClasses="w-auto min-w-max"
position='left'
/>
</div>
</div> </div>
{/* contentDisplay toggler */} {/* contentDisplay toggler */}
{/* <div className="p-2 w-[35px] h-[35px] bg-white dark:bg-slate-200 rounded-lg"> <div className="p-2 w-[35px] h-[35px] bg-white dark:bg-slate-200 rounded-lg">
<img <img
title={contentDisplay=='grid'? 'list view' : 'grid view'} title={contentDisplay=='grid'? 'list view' : 'grid view'}
onClick={()=>setContentDisplay((prev)=>prev=='grid'? 'list' : 'grid')} onClick={()=>setContentDisplay((prev)=>prev=='grid'? 'list' : 'grid')}
src={contentDisplay=='grid'? ListView : GridView} src={contentDisplay=='grid'? ListView : GridView}
className="w-full h-full cursor-pointer" alt="view" className="w-full h-full cursor-pointer" alt="view"
/> />
</div> */} </div>
{/* end of contentDisplay toggler */} {/* end of contentDisplay toggler */}
</div> </div>
<div className="filter-navigate-content w-full min-h-screen"> <div className="filter-navigate-content w-full min-h-screen">
@@ -143,13 +143,15 @@ export default function ManageInterestOffer(props) {
{/* info tab */} {/* info tab */}
{tab == 'info' ? {tab == 'info' ?
<div className="info-details w-full border-t"> <div className="info-details w-full border-t">
<div className="my-3 flex items-center gap-1"> <div className="my-0 md:my-3 block md:flex items-center gap-10">
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Name</span> <div className="my-3 md:my-0 flex items-center gap-1">
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_name}</span> <span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Name</span>
</div> <span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_name}</span>
<div className="my-3 flex items-center gap-1"> </div>
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Member Since</span> <div className="my-3 md:my-0 flex items-center gap-1">
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_added}</span> <span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Member Since</span>
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_added}</span>
</div>
</div> </div>
<div className="my-3 flex items-center gap-1"> <div className="my-3 flex items-center gap-1">
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs completed</span> <span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs completed</span>
@@ -226,7 +228,7 @@ export default function ManageInterestOffer(props) {
{/* BUTTON section */} {/* BUTTON section */}
<div className="p-4 w-full min-h-full bg-sky-100 dark:bg-dark-gray col-span-1"> <div className="p-4 w-full min-h-full bg-sky-100 dark:bg-dark-gray col-span-1">
<div className="w-full h-full"> <div className="w-full h-full">
<div className="mt-0 sm:mt-10 flex sm:flex-col justify-center items-center gap-10"> <div className="h-full flex sm:flex-col justify-center items-center gap-10">
{requestStatus.loading && requestStatus.processType == 'accept' ? {requestStatus.loading && requestStatus.processType == 'accept' ?
<LoadingSpinner color='sky-blue' size='10' /> <LoadingSpinner color='sky-blue' size='10' />
: :
@@ -235,9 +237,10 @@ export default function ManageInterestOffer(props) {
name='accept' name='accept'
disabled={requestStatus.loading} disabled={requestStatus.loading}
onClick={interestOfferProcess} onClick={interestOfferProcess}
className="px-2 py-1 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white" // className="px-2 py-1 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
className='max-w-[150px] h-[100px] bg-[#57cd89] text-center text-lg font-semibold text-white py-2 px-4 rounded-md shadow-md'
> >
Accept Accept this Interest
</button> </button>
} }
@@ -249,9 +252,10 @@ export default function ManageInterestOffer(props) {
name='reject' name='reject'
disabled={requestStatus.loading} disabled={requestStatus.loading}
onClick={interestOfferProcess} onClick={interestOfferProcess}
className="px-2 py-1 h-11 flex justify-center items-center border-gradient text-base rounded-full text-black" // className="px-2 py-1 h-11 flex justify-center items-center border-gradient text-base rounded-full text-black"
className='max-w-[150px] h-[100px] bg-red-300 text-center text-lg font-semibold text-white py-2 px-4 rounded-md shadow-md'
> >
Reject Reject this Interest
</button> </button>
} }
</div> </div>
@@ -69,6 +69,7 @@ const EditJobPopOut = ({
const handleEditJob = useCallback( const handleEditJob = useCallback(
async (values) => { async (values) => {
values.category = values.category?.join("@");
setRequestStatus({ loading: true, message: "" }); setRequestStatus({ loading: true, message: "" });
let reqData = { let reqData = {
job_id: details.job_id, job_id: details.job_id,