diff --git a/src/Routers.jsx b/src/Routers.jsx index f48638f..460a8b1 100644 --- a/src/Routers.jsx +++ b/src/Routers.jsx @@ -43,6 +43,7 @@ import AuthRedirect from "./views/AuthRedirect"; import MyPastDueJobsPage from "./views/MyPastDueJobsPage"; import BlogPage from "./views/BlogPage"; import MyReviewDueJobsPage from "./views/MyReviewDueJobsPage"; +import OffersInterestPage from "./views/OffersInterestPage"; export default function Routers() { return ( @@ -97,6 +98,7 @@ export default function Routers() { } /> } /> } /> + } /> {

- Interest: {marketInt?.public_view} + Interest: {details.interest_count}


Expire: {expireIntDate}

diff --git a/src/components/MyActiveJobs/ActiveJobs.jsx b/src/components/MyActiveJobs/ActiveJobs.jsx index db690aa..53f000b 100644 --- a/src/components/MyActiveJobs/ActiveJobs.jsx +++ b/src/components/MyActiveJobs/ActiveJobs.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useState, useRef, forwardRef } from "react"; import { useSelector } from "react-redux"; import Layout from "../Partials/Layout"; import { useNavigate } from "react-router-dom"; @@ -6,6 +6,8 @@ import ActiveJobMessage from "./ActiveJobMessage"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import CountDown from "../Helpers/CountDown"; import IndexJobActions from "./JobActions/IndexJobActions"; +import ModalCom from "../Helpers/ModalCom"; +import { useReactToPrint } from "react-to-print"; import usersService from "../../services/UsersService"; @@ -25,6 +27,18 @@ function ActiveJobs(props) { let [requestStatus, setRequestStatus] = useState({loading: false, status: false, message: ''}) + let [popUp, setPopUp] = useState(false) // STATE FOR POPOUT MODAL + + const printRef = useRef(); + // to handle printing + const handlePrint = useReactToPrint({ + content: () => printRef.current, + }); + + const popUpHandler = () => { // FUNCTION TO HANDLE POPOUT + setPopUp(prev => !prev) + } + // FUNCTION TO HANDLE MESSAGE CHANGE const handleMessageChange = ({target:{value}}) => { setMessageToSend(value) @@ -395,7 +409,12 @@ function ActiveJobs(props) { {/* MESSAGE SECTION */}
-

Message

+
+

Message

+ +
{props.activeJobMesList.loading ? : @@ -405,6 +424,12 @@ function ActiveJobs(props) { {/* END OF MESSAGE */}
+ {/* POPOUT SECTION */} + {popUp && + + } + {/* END OF POPOUT SECTION */} + ); } @@ -429,3 +454,104 @@ function convertFileToBase64(file) { }); } +//POPOUT COMPONENT FUNCTION +const PopModal = ({popUpHandler, popUp, details, activeJobMesList, handlePrint, myRef}) => { + return ( + +
+
+

+ {details?.contract} +

+ +
+
+
+ {activeJobMesList.loading ? + + : +
+ + + + + + + {activeJobMesList?.data?.length ? + ( + + {activeJobMesList?.data?.map((item, index) => ( + + + + ))} + + ) + : + activeJobMesList.error ? + ( + + + + + + ) + : + + + + + + } +
+
+
{item.msg_date} {item.msg_firstname}
+ +
+ +
Opps! an error occurred. Please try again!
No Message Found!
+
+ } +
+ + {/* btn */} +
+
+ + +
+
+
+
+
+ ) +} + diff --git a/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx b/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx index 89276c2..79f540e 100644 --- a/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx +++ b/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx @@ -7,7 +7,7 @@ function CurrentJobAction() { -
+

diff --git a/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx b/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx index 83fd99b..afbed5f 100644 --- a/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx +++ b/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx @@ -37,14 +37,16 @@ function CurrentTaskAction({jobDetails}) { - + diff --git a/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx b/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx index 7f4bc9b..ca752cc 100644 --- a/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx +++ b/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx @@ -7,7 +7,7 @@ function ReviewJobAction() {
+
-
-

- I completed this task and ready for review and acceptance. -

-
+

+ I completed this task and ready for review and acceptance. +

+ {/*
*/} + + {/*
*/}
-
+

diff --git a/src/components/UserHeader/RecomendedSliders.jsx b/src/components/UserHeader/RecomendedSliders.jsx index 38573bd..dd999ae 100644 --- a/src/components/UserHeader/RecomendedSliders.jsx +++ b/src/components/UserHeader/RecomendedSliders.jsx @@ -102,7 +102,7 @@ export default function RecomendedSliders({ className,bannerData }) { {bannerData.map((item, index) => (
-
+
{/* title */}

diff --git a/src/index.css b/src/index.css index 8a07166..93c3d14 100644 --- a/src/index.css +++ b/src/index.css @@ -55,13 +55,16 @@ background-color: transparent; } .lr{ - background-color: lightpink; + background-color: #e1cace; } .lg{ - background-color: lightgreen; + background-color: #a7dca7; } .lb{ - background-color: lightblue; + background-color: #b3ccd7; +} +.ly{ + background-color: #eeee67; } .offer-slide-item{ background: rgb(2,0,36); @@ -618,6 +621,20 @@ input[type="text"][dir="rtl"] { .modal-com { transition: all 0.1s ease-in-out; } + +@media print { + body .modal-com{ + height: 100%; + overflow: hidden; + } + .job-action-modal-body button, .message-modal-header button { + display: none; + } + .message-modal-wrapper .message-table{ + height: 100%; + overflow-y: hidden; + } +} /* TODO: =================================modal end================================= */ /* TODO: =================================login ================================= */ .btn-login { diff --git a/src/views/OffersInterestPage.jsx b/src/views/OffersInterestPage.jsx new file mode 100644 index 0000000..251e48b --- /dev/null +++ b/src/views/OffersInterestPage.jsx @@ -0,0 +1,13 @@ +import React, { useContext, useState, useEffect } from "react"; +import BlogItem from "../components/Blogs"; +import { useSelector } from "react-redux"; + +export default function OffersInterestPage() { + let {commonHeadBanner} = useSelector(state => state.commonHeadBanner) + + return ( + <> + + + ); +} \ No newline at end of file