Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 171f99d997 | |||
| 25c7cd75c7 | |||
| fd68800b00 | |||
| 33f1515d2c | |||
| 2cc30d6c47 | |||
| cfadb42811 | |||
| 1bb2eb3203 | |||
| cd68861dfa | |||
| 9fb0a65e46 | |||
| 15fce205a6 | |||
| dddf6af401 | |||
| 1a86361fbb | |||
| 4f69786f19 | |||
| 5634c1542b | |||
| f9e3d2aad2 | |||
| 921d1af7f0 | |||
| c98d2e41ef | |||
| 1f98a3eacb |
Binary file not shown.
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 52 KiB |
@@ -92,13 +92,13 @@ function AddJob({ popUpHandler, categories }) {
|
|||||||
>
|
>
|
||||||
{(props) => {
|
{(props) => {
|
||||||
return (
|
return (
|
||||||
<Form>
|
<Form className='contents'>
|
||||||
<div className="add-job p-5 w-full bg-white dark:bg-dark-white dark:text-white rounded-md flex flex-col justify-between">
|
<div className="add-job p-5 w-full h-full rounded-md flex flex-col justify-between overflow-y-auto">
|
||||||
<div className="flex flex-col-reverse sm:flex-row">
|
<div className="flex flex-col-reverse sm:flex-row">
|
||||||
<div className="fields w-full">
|
<div className="fields w-full">
|
||||||
{/* inputs starts here */}
|
{/* inputs starts here */}
|
||||||
<div className="xl:flex xl:space-x-7 mb-[5px]">
|
<div className="xl:flex xl:space-x-7 mb-[5px]">
|
||||||
<div className="field w-full mb-6 xl:mb-0">
|
<div className="field w-full mb-[5px] xl:mb-0">
|
||||||
<label
|
<label
|
||||||
htmlFor="country"
|
htmlFor="country"
|
||||||
className="job-label job-label-flex"
|
className="job-label job-label-flex"
|
||||||
@@ -159,7 +159,7 @@ function AddJob({ popUpHandler, categories }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Price */}
|
{/* Price */}
|
||||||
<div className="field w-full">
|
<div className="field w-full mb-[5px] xl:mb-0">
|
||||||
<InputCom
|
<InputCom
|
||||||
fieldClass="px-6 text-right flex"
|
fieldClass="px-6 text-right flex"
|
||||||
label="Price"
|
label="Price"
|
||||||
@@ -179,7 +179,7 @@ function AddJob({ popUpHandler, categories }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Timeline */}
|
{/* Timeline */}
|
||||||
<div className="field w-full">
|
<div className="field w-full mb-[5px] xl:mb-0">
|
||||||
<label
|
<label
|
||||||
className="job-label job-label-flex"
|
className="job-label job-label-flex"
|
||||||
htmlFor="timeline_days"
|
htmlFor="timeline_days"
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ export default function LoginLayout({ slogan, children }) {
|
|||||||
backgroundImage: `url(${countryMode == "NG" ? bgImgNig : bgImgCom})`,
|
backgroundImage: `url(${countryMode == "NG" ? bgImgNig : bgImgCom})`,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className={`w-full grid grid-cols-1 lg:grid-cols-2`}>
|
<div className={`w-full grid grid-cols-1 xl:grid-cols-2`}>
|
||||||
{/* <div
|
{/* <div
|
||||||
className={`auth-bg hidden lg:block bg-blue-50 relative bg-cover bg-no-repeat border-0 after:content-[''] after:absolute after:inset-0`}
|
className={`auth-bg hidden xl:block bg-blue-50 relative bg-cover bg-no-repeat border-0 after:content-[''] after:absolute after:inset-0`}
|
||||||
style={{backgroundImage: `url(${bgImg})`}}
|
style={{backgroundImage: `url(${bgImg})`}}
|
||||||
>
|
>
|
||||||
</div> */}
|
</div> */}
|
||||||
<div className="p-5 sm:p-7 flex place-content-center lg:col-start-2">
|
<div className="p-5 sm:p-7 flex place-content-center xl:col-start-2">
|
||||||
<div className="py-5 w-full sm:w-11/12 max-w-[550px] shadow-md bg-slate-50 dark:bg-dark-white rounded-[0.475rem]">
|
<div className="py-5 w-full sm:w-11/12 max-w-[550px] shadow-md bg-slate-50 dark:bg-dark-white rounded-[0.475rem]">
|
||||||
<div className="w-full flex justify-center items-center">
|
<div className="w-full flex justify-center items-center">
|
||||||
{children && children}
|
{children && children}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ const AccountDashboard = ({ className, bannerList }) => {
|
|||||||
{getLowerBanner?.map((props, idx) => {
|
{getLowerBanner?.map((props, idx) => {
|
||||||
let image = getImage(props);
|
let image = getImage(props);
|
||||||
|
|
||||||
let { short_title, short_description, short_button_text, link_path } =
|
let { short_title, short_description, short_button_text, link_path, card_type, blog_id } =
|
||||||
props;
|
props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -56,6 +56,8 @@ const AccountDashboard = ({ className, bannerList }) => {
|
|||||||
title={short_title}
|
title={short_title}
|
||||||
desc={short_description}
|
desc={short_description}
|
||||||
link_path={link_path}
|
link_path={link_path}
|
||||||
|
card_type={card_type}
|
||||||
|
blog_id={blog_id}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -102,7 +104,9 @@ const TopBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const LowerBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
|
const LowerBanner = ({ image, title = "", desc = "", btn, link_path, card_type, blog_id, key }) => {
|
||||||
|
const newLinkPath = card_type == 'BLOG' ? `${link_path}?blog_id=${blog_id}` : link_path
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={key}
|
key={key}
|
||||||
@@ -111,15 +115,15 @@ const LowerBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
|
|||||||
<div className="w-full xxs:flex justify-between items-center border-b border-slate-300 p-2">
|
<div className="w-full xxs:flex justify-between items-center border-b border-slate-300 p-2">
|
||||||
<div className="min-h-[150px] sm:min-h-[130px] flex justify-between items-center">
|
<div className="min-h-[150px] sm:min-h-[130px] flex justify-between items-center">
|
||||||
<div className="px-2 flex flex-col gap-2 dark:text-white">
|
<div className="px-2 flex flex-col gap-2 dark:text-white">
|
||||||
<Link to={link_path} className="text-lg font-bold">
|
<Link to={newLinkPath} className="text-lg font-bold">
|
||||||
{title}
|
{title}
|
||||||
</Link>
|
</Link>
|
||||||
<p to={link_path} className="text-sm">
|
<p to={newLinkPath} className="text-sm">
|
||||||
{desc}
|
{desc}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Link to={link_path} className="w-[150px] h-[100px]">
|
<Link to={newLinkPath} className="w-[150px] h-[100px]">
|
||||||
<img
|
<img
|
||||||
src={image}
|
src={image}
|
||||||
alt="banner-img"
|
alt="banner-img"
|
||||||
@@ -129,7 +133,7 @@ const LowerBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
|
|||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex justify-between w-full px-2 items-center">
|
<div className="flex justify-between w-full px-2 items-center">
|
||||||
<Link to={link_path} className="text-slate-300 font-semibold text-sm">
|
<Link to={newLinkPath} className="text-slate-300 font-semibold text-sm">
|
||||||
{btn}
|
{btn}
|
||||||
</Link>
|
</Link>
|
||||||
<button className="flex items-center justify-center gap-2">
|
<button className="flex items-center justify-center gap-2">
|
||||||
|
|||||||
@@ -176,6 +176,9 @@ export default function FamilyManageTabs({
|
|||||||
familyData={familyWaitList}
|
familyData={familyWaitList}
|
||||||
accountDetails={accountDetails}
|
accountDetails={accountDetails}
|
||||||
setUpdatePage={setUpdatePage}
|
setUpdatePage={setUpdatePage}
|
||||||
|
jobList={jobList}
|
||||||
|
setActiveTask={setActiveTask}
|
||||||
|
activeTask={activeTask}
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
Pending: (
|
Pending: (
|
||||||
|
|||||||
@@ -85,10 +85,10 @@ export default function AssignMediaTask({
|
|||||||
>
|
>
|
||||||
{(props) => {
|
{(props) => {
|
||||||
return (
|
return (
|
||||||
<Form>
|
<Form className='contents'>
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
className={`job-action-modal-body w-full h-[500px] overflow-y-auto md:grid md:grid-cols-2`}
|
className={`job-action-modal-body w-full h-full overflow-y-auto md:grid md:grid-cols-2`}
|
||||||
>
|
>
|
||||||
<div className="p-4 pt-0">
|
<div className="p-4 pt-0">
|
||||||
<div className="p-4 w-full h-[450px] overflow-y-auto bg-slate-100 rounded-md dark:bg-[#11131f] dark:text-white">
|
<div className="p-4 w-full h-[450px] overflow-y-auto bg-slate-100 rounded-md dark:bg-[#11131f] dark:text-white">
|
||||||
@@ -124,7 +124,7 @@ export default function AssignMediaTask({
|
|||||||
{/*Right Hand Side for details && Task Type === select */}
|
{/*Right Hand Side for details && Task Type === select */}
|
||||||
<>
|
<>
|
||||||
{commonMedia?.data?.length > 0 ? (
|
{commonMedia?.data?.length > 0 ? (
|
||||||
<div className="p-4 py-0 h-full">
|
<div className="p-4 py-0 h-auto">
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<div className="mb-3 w-full">
|
<div className="mb-3 w-full">
|
||||||
<label className="job-label">
|
<label className="job-label">
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default function AssignPrevNewTask({
|
|||||||
|
|
||||||
|
|
||||||
let imageSrc = (localStorage.getItem("session_token")
|
let imageSrc = (localStorage.getItem("session_token")
|
||||||
? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask.data.job_uid}` : ""); // FOR GETTING JOB IMAGE
|
? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask?.data?.job_uid}` : ""); // FOR GETTING JOB IMAGE
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -33,7 +33,7 @@ export default function AssignPrevNewTask({
|
|||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
className={`job-action-modal-body w-full h-[500px] overflow-y-auto md:grid ${
|
className={`job-action-modal-body w-full h-full overflow-y-auto md:grid ${
|
||||||
taskType !== "new" ? "md:grid-cols-2" : "md:grid-cols-1"
|
taskType !== "new" ? "md:grid-cols-2" : "md:grid-cols-1"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
@@ -230,9 +230,9 @@ export default function AssignPrevNewTask({
|
|||||||
) : (
|
) : (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
disabled={requestStatus.loading}
|
disabled={requestStatus.loading || requestStatus.status}
|
||||||
onClick={assignFamilyTask}
|
onClick={assignFamilyTask}
|
||||||
className="custom-btn btn-gradient text-white"
|
className={`custom-btn btn-gradient text-white ${requestStatus.status && 'opacity-50'}`}
|
||||||
>
|
>
|
||||||
Assign
|
Assign
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ const AssignTaskPopout = ({
|
|||||||
setActiveTask,
|
setActiveTask,
|
||||||
setUpdatePage,
|
setUpdatePage,
|
||||||
}) => {
|
}) => {
|
||||||
|
const newJobList = {...jobList, data:jobList?.data?.filter(item => item?.job_mode == 'FAMILY')}
|
||||||
|
|
||||||
const {parentAssignJobToKid} = SocketValues()
|
const {parentAssignJobToKid} = SocketValues()
|
||||||
|
|
||||||
const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
|
const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
|
||||||
@@ -311,7 +313,7 @@ const AssignTaskPopout = ({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ModalCom action={action} situation={situation}>
|
<ModalCom action={action} situation={situation}>
|
||||||
<div className="w-11/12 lg:w-[700px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="modal-container">
|
||||||
<div className="modal-header-con">
|
<div className="modal-header-con">
|
||||||
<h1 className="modal-title">
|
<h1 className="modal-title">
|
||||||
{details ? (
|
{details ? (
|
||||||
@@ -364,7 +366,7 @@ const AssignTaskPopout = ({
|
|||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="modal-body">
|
<div className="modal-body-wrapper p-[0!important]">
|
||||||
<div className="px-4 py-2 w-full flex items-center gap-4">
|
<div className="px-4 py-2 w-full flex items-center gap-4">
|
||||||
<button
|
<button
|
||||||
name='task'
|
name='task'
|
||||||
@@ -383,10 +385,10 @@ const AssignTaskPopout = ({
|
|||||||
Media
|
Media
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="">
|
<div className="contents">
|
||||||
{assignType == 'task' ?
|
{assignType == 'task' ?
|
||||||
<AssignPrevNewTask
|
<AssignPrevNewTask
|
||||||
jobList={jobList}
|
jobList={newJobList}
|
||||||
requestStatus={requestStatus}
|
requestStatus={requestStatus}
|
||||||
assignFamilyTask={assignFamilyTask}
|
assignFamilyTask={assignFamilyTask}
|
||||||
taskType={taskType}
|
taskType={taskType}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
|
|||||||
import AssignTaskPopout from "../FamilyPopout/AssignTaskPopout";
|
import AssignTaskPopout from "../FamilyPopout/AssignTaskPopout";
|
||||||
|
|
||||||
const FamilyWaitlist = memo(
|
const FamilyWaitlist = memo(
|
||||||
({ familyData, className, accountDetails, setUpdatePage }) => {
|
({ familyData, className, accountDetails, setUpdatePage, jobList, setActiveTask, activeTask }) => {
|
||||||
const [popUp, setPopUp] = useState({ show: false, data: {} });
|
const [popUp, setPopUp] = useState({ show: false, data: {} });
|
||||||
const [continueTaskPopup, setContinueTaskPopup] = useState({
|
const [continueTaskPopup, setContinueTaskPopup] = useState({
|
||||||
show: false,
|
show: false,
|
||||||
@@ -73,7 +73,7 @@ const FamilyWaitlist = memo(
|
|||||||
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
|
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
|
||||||
key={value.uid}
|
key={value.uid}
|
||||||
>
|
>
|
||||||
<td className="py-4">
|
<td className="px-2 py-4">
|
||||||
<div className="w-full flex justify-between items-center">
|
<div className="w-full flex justify-between items-center">
|
||||||
<div className="account-name flex space-x-4 items-center">
|
<div className="account-name flex space-x-4 items-center">
|
||||||
<div className="icon w-14 h-14 flex justify-center items-center">
|
<div className="icon w-14 h-14 flex justify-center items-center">
|
||||||
@@ -92,23 +92,40 @@ const FamilyWaitlist = memo(
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="px-2 flex flex-col items-center justify-center">
|
{/* <div className="px-2 flex flex-col items-center justify-center">
|
||||||
{/* <p className="text-sm font-bold text-dark-gray dark:text-white">
|
<p className="text-sm font-bold text-dark-gray dark:text-white">
|
||||||
{addedDate}
|
{addedDate}
|
||||||
</p> */}
|
</p>
|
||||||
<p className="text-xs py-1.5 w-[70px] cursor-default tracking-wide rounded-full bg-gold text-white flex justify-center items-center">
|
<p className="text-xs py-1.5 w-[70px] cursor-default tracking-wide rounded-full bg-gold text-white flex justify-center items-center">
|
||||||
{value.status_text}
|
{value.status_text}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="text-right py-4 px-2">
|
<td className="text-right px-2 py-4">
|
||||||
<button
|
<div className='w-full flex justify-end items-center gap-4'>
|
||||||
onClick={() => openPopUp(value)}
|
<p className="text-xs py-1.5 w-[70px] cursor-default tracking-wide rounded-full bg-gold text-white flex justify-center items-center">
|
||||||
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
{value.status_text}
|
||||||
>
|
</p>
|
||||||
View
|
<button
|
||||||
</button>
|
onClick={() => openPopUp(value)}
|
||||||
|
className="w-12 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 11 20"
|
||||||
|
id="Arrow"
|
||||||
|
className="w-[0.7rem]"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M.366 19.708c.405.39 1.06.39 1.464 0l8.563-8.264a1.95 1.95 0 0 0 0-2.827L1.768.292A1.063 1.063 0 0 0 .314.282a.976.976 0 0 0-.011 1.425l7.894 7.617a.975.975 0 0 1 0 1.414L.366 18.295a.974.974 0 0 0 0 1.413"
|
||||||
|
// fill=""
|
||||||
|
className="color000000 svgShape fill-[#fff]"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
);
|
);
|
||||||
@@ -144,6 +161,9 @@ const FamilyWaitlist = memo(
|
|||||||
action={closeContinueTaskPopup}
|
action={closeContinueTaskPopup}
|
||||||
situation={continueTaskPopup.show}
|
situation={continueTaskPopup.show}
|
||||||
setUpdatePage={setUpdatePage}
|
setUpdatePage={setUpdatePage}
|
||||||
|
jobList={jobList}
|
||||||
|
setActiveTask={setActiveTask}
|
||||||
|
activeTask={activeTask}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ export default function ModalCom({ action, children, situation, isOpen, classNam
|
|||||||
<div className="modal-com">
|
<div className="modal-com">
|
||||||
<div
|
<div
|
||||||
onClick={action || isOpen}
|
onClick={action || isOpen}
|
||||||
className="fixed top-0 left-0 w-full lg:h-[100vh] h-full bg-black bg-opacity-40 backdrop-filter backdrop-blur-sm z-50"
|
className="fixed top-0 left-0 bottom-0 w-full bg-black bg-opacity-40 backdrop-filter backdrop-blur-sm z-50"
|
||||||
></div>
|
></div>
|
||||||
<div className={`fixed lg:h-100vh h-full z-[99999999999999] w-full lg:w-auto inset-0 flex flex-col justify-center items-center ${className}`}>
|
<div className={`fixed h-full z-[99999999999999] w-full lg:w-auto inset-0 flex flex-col justify-center items-center ${className}`}>
|
||||||
{children && children}
|
{children && children}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ function ActiveJobs(props) {
|
|||||||
<div className="py-[20px] bg-white dark:bg-black dark:text-white px-4 rounded-2xl shadow-md md:flex justify-between items-start gap-8">
|
<div className="py-[20px] bg-white dark:bg-black dark:text-white px-4 rounded-2xl shadow-md md:flex justify-between items-start gap-8">
|
||||||
{/* job title */}
|
{/* job title */}
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<div className="w-full flex justify-start space-x-3 items-start">
|
<div className="w-full flex justify-start space-x-3 items-center">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="min-w-[45px] h-auto text-[#374557] border border-sky-blue p-1 rounded-full"
|
className="min-w-[45px] h-auto text-[#374557] border border-sky-blue p-1 rounded-full"
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const currentJobList = filterJobList();
|
const currentJobList = filterJobList()?.filter(item => item?.job_mode == 'GENERAL'); // Show only jobs with job mode of GENERAL
|
||||||
|
|
||||||
// Handling Filter Pagination
|
// Handling Filter Pagination
|
||||||
const filteredCurrentJobList = currentJobList?.slice(
|
const filteredCurrentJobList = currentJobList?.slice(
|
||||||
@@ -358,13 +358,14 @@ function myJobTableFeatures(
|
|||||||
{MyJobList?.data?.result_list?.length > 0 ? (
|
{MyJobList?.data?.result_list?.length > 0 ? (
|
||||||
filteredCurrentJobList.length > 0 ? (
|
filteredCurrentJobList.length > 0 ? (
|
||||||
filteredCurrentJobList.map((value, index) => (
|
filteredCurrentJobList.map((value, index) => (
|
||||||
<JobListItem
|
<JobListItem
|
||||||
key={index}
|
key={index}
|
||||||
index={index}
|
index={index}
|
||||||
value={value}
|
value={value}
|
||||||
image_server={MyJobList.data.session_image_server}
|
image_server={MyJobList.data.session_image_server}
|
||||||
/>
|
/>
|
||||||
))
|
)
|
||||||
|
)
|
||||||
) : (
|
) : (
|
||||||
<NoJobsRow text="No Jobs Available In This Category!" />
|
<NoJobsRow text="No Jobs Available In This Category!" />
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -146,10 +146,12 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
|
|
||||||
let reqData = { // PAYLOAD FOR API CALL
|
let reqData = { // PAYLOAD FOR API CALL
|
||||||
// file_name: selectedFile.substring(0,21).replace(/ /gi, ""),
|
// file_name: selectedFile.substring(0,21).replace(/ /gi, ""),
|
||||||
|
|
||||||
|
// file_data: img.file?.split(",")[1],
|
||||||
file_name: `myfile.${imgDetails?.type?.split('/')[1]}`,
|
file_name: `myfile.${imgDetails?.type?.split('/')[1]}`,
|
||||||
file_size: imgDetails.size,
|
file_size: imgDetails.size,
|
||||||
file_type: imgDetails.type,
|
file_type: imgDetails.type,
|
||||||
file_data: img.file?.split(",")[1],
|
files: imgDetails,
|
||||||
title: itemName,
|
title: itemName,
|
||||||
description: description,
|
description: description,
|
||||||
msg_type: 'FILE',
|
msg_type: 'FILE',
|
||||||
@@ -173,7 +175,7 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
|
|
||||||
// API CALL TO UPLOAD COMES HERE
|
// API CALL TO UPLOAD COMES HERE
|
||||||
setRequestStatus({loading: true, status: null, message: ''}) // SETS REQUEST LOADING TRUE
|
setRequestStatus({loading: true, status: null, message: ''}) // SETS REQUEST LOADING TRUE
|
||||||
apiCall.sendFiles(reqData).then(res=>{
|
apiCall.uploadFile(reqData).then(res=>{
|
||||||
if(res.status != 200 || res.data.internal_return < 0){
|
if(res.status != 200 || res.data.internal_return < 0){
|
||||||
return setRequestStatus({loading: false, status: false, message: 'Something went wrong, try again'})
|
return setRequestStatus({loading: false, status: false, message: 'Something went wrong, try again'})
|
||||||
}
|
}
|
||||||
@@ -311,6 +313,13 @@ export default function UploadProduct({uploadTypes}) {
|
|||||||
className="w-full h-full object-cover"
|
className="w-full h-full object-cover"
|
||||||
controls
|
controls
|
||||||
></video>
|
></video>
|
||||||
|
) : img.type === "audio" ? (
|
||||||
|
<audio
|
||||||
|
type=""
|
||||||
|
src={img.file}
|
||||||
|
className="w-full h-full object-cover"
|
||||||
|
controls
|
||||||
|
></audio>
|
||||||
) : img.type != null ? (
|
) : img.type != null ? (
|
||||||
<p>{selectedFile}</p>
|
<p>{selectedFile}</p>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ function DeleteJobPopout({ details, onClose, situation }) {
|
|||||||
{/* End of error or success display */}
|
{/* End of error or success display */}
|
||||||
</div>
|
</div>
|
||||||
<div className="modal-footer-wrapper grid grid-cols-1 xxs:grid-cols-3">
|
<div className="modal-footer-wrapper grid grid-cols-1 xxs:grid-cols-3">
|
||||||
<div className="w-full col-span-1 xxs:col-span-2 xxs:col-start-2 flex justify-between items-center">
|
<div className="w-full col-span-1 xxs:col-span-2 xxs:col-start-2 flex justify-between items-center gap-4">
|
||||||
<button
|
<button
|
||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ const EditJobPopoutNew = ({
|
|||||||
<div className="flex flex-col-reverse sm:flex-row">
|
<div className="flex flex-col-reverse sm:flex-row">
|
||||||
<div className="fields w-full">
|
<div className="fields w-full">
|
||||||
<div className="sm:flex sm:space-x-7 mb-[0.5rem]">
|
<div className="sm:flex sm:space-x-7 mb-[0.5rem]">
|
||||||
<div className="field w-full mb-6 sm:mb-0">
|
<div className="field w-full mb-[0.5rem] sm:mb-0">
|
||||||
<InputCom
|
<InputCom
|
||||||
fieldClass="px-6 cursor-default"
|
fieldClass="px-6 cursor-default"
|
||||||
label="Currency"
|
label="Currency"
|
||||||
@@ -271,7 +271,7 @@ const EditJobPopoutNew = ({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Price */}
|
{/* Price */}
|
||||||
<div className="field w-full mb-6 sm:mb-0">
|
<div className="field w-full mb-[0.5rem] sm:mb-0">
|
||||||
<InputCom
|
<InputCom
|
||||||
fieldClass="px-6 text-right"
|
fieldClass="px-6 text-right"
|
||||||
label="Price"
|
label="Price"
|
||||||
@@ -289,7 +289,7 @@ const EditJobPopoutNew = ({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="field w-full">
|
<div className="field w-full mb-[0.5rem] sm:mb-0">
|
||||||
<label
|
<label
|
||||||
className="job-label"
|
className="job-label"
|
||||||
htmlFor="timeline_days"
|
htmlFor="timeline_days"
|
||||||
|
|||||||
@@ -560,7 +560,7 @@ const JobFieldInput = ({
|
|||||||
<Field
|
<Field
|
||||||
component="select"
|
component="select"
|
||||||
name={inputName}
|
name={inputName}
|
||||||
className={`input-field placeholder:text-base text-dark-gray w-full h-full bg-white outline-none px-2`}
|
className={`options-default`}
|
||||||
value={value}
|
value={value}
|
||||||
>
|
>
|
||||||
{/* <option value="">{optionText}</option> */}
|
{/* <option value="">{optionText}</option> */}
|
||||||
|
|||||||
+6
-3
@@ -160,9 +160,9 @@
|
|||||||
@apply flex items-center gap-2
|
@apply flex items-center gap-2
|
||||||
}
|
}
|
||||||
|
|
||||||
/* STYLES FOR MODAL 'NOTE => VIEW JOB EDIT MODAL FOR SAMPLE USAGE'*/
|
/* STYLES FOR MODAL 'NOTE => VIEW JOB EDIT MODAL/ADD JOB MODAL FOR SAMPLE USAGE'*/
|
||||||
.modal-container {
|
.modal-container {
|
||||||
@apply w-11/12 md:w-[700px] mx-auto h-full flex flex-col bg-white dark:bg-dark-white lg:rounded-2xl overflow-hidden
|
@apply w-11/12 md:w-[700px] mx-auto h-auto max-h-full flex flex-col bg-white dark:bg-dark-white lg:rounded-2xl overflow-hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Modal Header section*/
|
/* Modal Header section*/
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
|
|
||||||
/* modal footer */
|
/* modal footer */
|
||||||
.modal-footer-wrapper{
|
.modal-footer-wrapper{
|
||||||
@apply p-4 border-t-2 flex justify-between items-center
|
@apply p-4 border-t-2 flex justify-between items-center w-full
|
||||||
}
|
}
|
||||||
/* END OF STYLES FOR MODAL BOX */
|
/* END OF STYLES FOR MODAL BOX */
|
||||||
|
|
||||||
@@ -194,6 +194,9 @@
|
|||||||
.logout-btn {
|
.logout-btn {
|
||||||
@apply px-4 min-w-[80px] h-[52px] flex justify-center items-center text-xl font-bold rounded-full cursor-pointer
|
@apply px-4 min-w-[80px] h-[52px] flex justify-center items-center text-xl font-bold rounded-full cursor-pointer
|
||||||
}
|
}
|
||||||
|
.options-default {
|
||||||
|
@apply px-2 placeholder:text-sm w-full h-full bg-white outline-none text-sm text-slate-900 dark:text-white
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===================== EXTRA ===================== */
|
/* ===================== EXTRA ===================== */
|
||||||
|
|||||||
@@ -908,6 +908,24 @@ class usersService {
|
|||||||
return this.postAuxEnd("/uploads", postData);
|
return this.postAuxEnd("/uploads", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION TO SEND FILE UPLOAD
|
||||||
|
uploadFile(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE,
|
||||||
|
...reqData,
|
||||||
|
};
|
||||||
|
|
||||||
|
const formData = new FormData();
|
||||||
|
for (let data in postData) {
|
||||||
|
formData.append(data, postData[data]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.postAuxEnd("/upload/resources", formData, true);
|
||||||
|
}
|
||||||
|
|
||||||
// END POINT TO DELETE A JOB
|
// END POINT TO DELETE A JOB
|
||||||
deleteJob(reqData) {
|
deleteJob(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
@@ -1456,8 +1474,8 @@ class usersService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
postAuxEnd(uri, reqData) {
|
postAuxEnd(uri, reqData, uploadPost=false) {
|
||||||
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
|
const endPoint = uploadPost ? process.env.REACT_APP_MEDIA_LINK + uri : process.env.REACT_APP_USERS_ENDPOINT + uri;
|
||||||
const session_token = localStorage.getItem("session_token");
|
const session_token = localStorage.getItem("session_token");
|
||||||
// session_token = session_token !=null ?session_token : '';
|
// session_token = session_token !=null ?session_token : '';
|
||||||
// 'Authorization': `Basic ${(session_token !=null) ?session_token : ''}`,
|
// 'Authorization': `Basic ${(session_token !=null) ?session_token : ''}`,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import ModalCom from "../components/Helpers/ModalCom";
|
|||||||
function AddJobPage({ action, situation, categories }) {
|
function AddJobPage({ action, situation, categories }) {
|
||||||
return (
|
return (
|
||||||
<ModalCom action={action} situation={situation}>
|
<ModalCom action={action} situation={situation}>
|
||||||
<div className="lg:w-[600px] w-11/12 lg:overflow-hidden lg:rounded-2xl bg-white dark:bg-dark-white dark:text-white">
|
<div className="modal-container">
|
||||||
<div className="modal-header-con">
|
<div className="modal-header-con">
|
||||||
<h1 className="modal-title">
|
<h1 className="modal-title">
|
||||||
New Job
|
New Job
|
||||||
|
|||||||
Reference in New Issue
Block a user