Compare commits

...

11 Commits

Author SHA1 Message Date
victorAnumudu feca311e7f adjusted market modal 2025-07-17 21:47:42 +01:00
ameye bd8f25b9e8 Merge branch 'market-popout-design' of WrenchBoard/Users-Wrench into master 2025-07-17 20:03:45 +00:00
victorAnumudu b26c0a238e market popout design changed 2025-07-17 20:14:49 +01:00
ameye 8841e36136 Merge branch 'height-fix' of WrenchBoard/Users-Wrench into master 2025-07-14 17:10:03 +00:00
victorAnumudu 7f534556be market popout height fixed 2025-07-14 17:48:32 +01:00
CHIEFSOFT\ameye 2bf8b2fe06 Roboto 2025-07-12 16:24:13 -04:00
CHIEFSOFT\ameye 4718b7962e added timeout 2025-07-05 20:05:34 -04:00
ameye 9cbf797ab0 Merge branch 'font-increase' of WrenchBoard/Users-Wrench into master 2025-07-01 18:26:06 +00:00
victorAnumudu 4b132b0499 dashboard card font increased 2025-07-01 18:55:02 +01:00
ameye a3320724de Merge branch 'social-login-text-fix' of WrenchBoard/Users-Wrench into master 2025-06-14 01:51:34 +00:00
victorAnumudu ab8320a846 updated social login text size 2025-06-10 18:06:40 +01:00
12 changed files with 172 additions and 232 deletions
+43 -43
View File
@@ -31,50 +31,50 @@ import InviteRefer from './views/InviteRefer';
import MyRefer from './views/MyRefer';
import HomePages from "./views/HomePages"
import ScrollToTop from "./components/Helpers/ScrollToTop"
import StartJob from "./components/MyJobs/StartJob"
import Notification from "./components/Notification"
import AuthRoute from "./middleware/AuthRoute"
import AuthProfilePage from "./views/AuthProfilePage"
import BlogPage from "./views/BlogPage"
import FamilyManagePage from "./views/FamilyManagePage"
import FamilyMarketPage from "./views/FamilyMarketPage"
const HomePages = lazy(() => import("./views/HomePages"));
const ScrollToTop = lazy(() => import("./components/Helpers/ScrollToTop"));
const StartJob = lazy(() => import("./components/MyJobs/StartJob"));
const Notification = lazy(() => import("./components/Notification"));
const AuthRoute = lazy(() => import("./middleware/AuthRoute"));
const AuthProfilePage = lazy(() => import("./views/AuthProfilePage"));
const BlogPage = lazy(() => import("./views/BlogPage"));
const FamilyManagePage = lazy(() => import("./views/FamilyManagePage"));
const FamilyMarketPage = lazy(() => import("./views/FamilyMarketPage"));
import HistoryPage from "./views/HistoryPage"
import JobGroupsPage from "./views/JobGroupsPage"
import ManageActiveJobs from "./views/ManageActiveJobs"
import ManageInterestOfferPage from "./views/ManageInterestOfferPage"
import MarketPlacePage from "./views/MarketPlacePage"
import MyActiveJobsPage from "./views/MyActiveJobsPage"
import MyCouponPage from "./views/MyCouponPage"
import MyJobsPage from "./views/MyJobsPage"
import MyOffersPage from "./views/MyOffersPage"
import MyPastDueJobsPage from "./views/MyPastDueJobsPage"
import MyReviewDueJobsPage from "./views/MyReviewDueJobsPage"
import MyTaskPage from "./views/MyTaskPage"
import MyWaitingJobsPage from "./views/MyWaitingJobsPage"
import MyWalletPage from "./views/MyWalletPage"
import OffersInterestPage from "./views/OffersInterestPage"
import ReferralPage from "./views/ReferralPage"
import RemindersPage from "./views/RemindersPage"
import ResourcePage from "./views/ResourcePage"
import SettingsPage from "./views/SettingsPage"
import TrackingPage from "./views/TrackingPage"
import UploadProductPage from "./views/UploadProductPage"
import UserProfilePage from "./views/UserProfilePage"
import YourPages from "./views/YourPage_"
import ParentWaitingPage from "./views/ParentWaitingPage"
import FamilyPendingOfferPage from "./views/FamilyPendingOfferPage"
import FamBlogPage from "./views/FamBlogPage"
import FamAIQuestionPage from "./views/FamAIQuestionPage"
import FamMyFilesPage from "./views/FamMyFilesPage"
import FamWorkInProgressPage from "./views/FamWorkInProgressPage"
import MyPastDueTasksPage from "./views/MyPastDueTasksPage"
import FamilyWalletPage from "./views/FamilyWalletPage"
import LearnMorePage from "./views/LearnMorePage"
import FamGamesPage from "./views/FamGamesPage"
import FamilyRoutesPage from "./views/FamilyRoutesPage"
const HistoryPage = lazy(()=> import("./views/HistoryPage"));
const JobGroupsPage = lazy(()=> import("./views/JobGroupsPage"));
const ManageActiveJobs = lazy(()=> import("./views/ManageActiveJobs"));
const ManageInterestOfferPage = lazy(()=> import("./views/ManageInterestOfferPage"));
const MarketPlacePage = lazy(()=> import("./views/MarketPlacePage"));
const MyActiveJobsPage = lazy(()=> import("./views/MyActiveJobsPage"));
const MyCouponPage = lazy(()=> import("./views/MyCouponPage"));
const MyJobsPage = lazy(()=> import("./views/MyJobsPage"));
const MyOffersPage = lazy(()=> import("./views/MyOffersPage"));
const MyPastDueJobsPage = lazy(()=> import("./views/MyPastDueJobsPage"));
const MyReviewDueJobsPage = lazy(()=> import("./views/MyReviewDueJobsPage"));
const MyTaskPage = lazy(()=> import("./views/MyTaskPage"));
const MyWaitingJobsPage = lazy(()=> import("./views/MyWaitingJobsPage"));
const MyWalletPage = lazy(()=> import("./views/MyWalletPage"));
const OffersInterestPage = lazy(()=> import("./views/OffersInterestPage"));
const ReferralPage = lazy(()=> import("./views/ReferralPage"));
const RemindersPage = lazy(()=> import("./views/RemindersPage"));
const ResourcePage = lazy(()=> import("./views/ResourcePage"));
const SettingsPage = lazy(()=> import("./views/SettingsPage"));
const TrackingPage = lazy(()=> import("./views/TrackingPage"));
const UploadProductPage = lazy(()=> import("./views/UploadProductPage"));
const UserProfilePage = lazy(()=> import("./views/UserProfilePage"));
const YourPages = lazy(()=> import("./views/YourPage_"));
const ParentWaitingPage = lazy(()=> import("./views/ParentWaitingPage"));
const FamilyPendingOfferPage = lazy(()=> import("./views/FamilyPendingOfferPage"));
const FamBlogPage = lazy(()=> import("./views/FamBlogPage"));
const FamAIQuestionPage = lazy(()=> import("./views/FamAIQuestionPage"));
const FamMyFilesPage = lazy(()=> import("./views/FamMyFilesPage"));
const FamWorkInProgressPage = lazy(()=> import("./views/FamWorkInProgressPage"));
const MyPastDueTasksPage = lazy(()=> import("./views/MyPastDueTasksPage"));
const FamilyWalletPage = lazy(()=> import("./views/FamilyWalletPage"));
const LearnMorePage = lazy(()=> import("./views/LearnMorePage"));
const FamGamesPage = lazy(()=> import("./views/FamGamesPage"));
const FamilyRoutesPage = lazy(()=> import("./views/FamilyRoutesPage"));
export default function Routers() {
return (
+4 -4
View File
@@ -526,8 +526,8 @@ export default function Login() {
)
// END of family login compoenent
}
<div className='w-full text-center'>
<Link className='text-center block font-semibold text-lg pt-3 tracking-wide' to='/login'>Return</Link>
<div className='mt-4 w-full flex justify-center items-center text-center'>
<Link className='px-4 py-2 rounded-full text-xl text-white bg-[#4687ba] hover:bg-[#009ef7] transition-all duration-300 items-center text-[15px]' to='/login'>Return</Link>
</div>
{/* END of login component */}
@@ -621,7 +621,7 @@ const BrandBtn = ({
className="w-full border border-light-purple rounded-[0.475rem] h-[48px] flex justify-center bg-[#FAFAFA] hover:bg-[#eff2f5] hover:text-[#7e8299] transition duration-300 items-center font-medium cursor-pointer"
>
<img className="mr-3 h-6" src={imgSrc} alt="logo-icon(s)" />
<span className="text-lg text-thin-light-gray font-normal text-[15px]">
<span className="text-thin-light-gray font-normal text-sm">
Continue with {brand}
</span>
</a>
@@ -632,7 +632,7 @@ const BrandBtn = ({
className="w-full border border-light-purple rounded-[0.475rem] h-[48px] flex justify-center bg-[#FAFAFA] hover:bg-[#eff2f5] hover:text-[#7e8299] transition duration-300 items-center font-medium cursor-pointer"
>
<img className="mr-3 h-6" src={imgSrc} alt="logo-icon(s)" />
<span className="text-lg text-thin-light-gray font-normal text-[15px]">
<span className="text-thin-light-gray font-normal text-sm">
Continue with {brand}
</span>
</button>
+5 -4
View File
@@ -282,16 +282,17 @@ export default function SignUp({refer_link, details}) {
)}
</button>
<span
onClick={rememberMe}
// onClick={rememberMe}
className="cursor-default text-gray-400 font-medium text-[16.25px] leading-[24.375px] group-checked:text-white transition-all duration-200 group-checked:cursor-default"
>
I agree with all
<Link
href="#"
<a
target='_blank'
href={process.env.REACT_APP_TERMS_LINK}
className="font-semibold text-[#4687ba] hover:text-[#009ef7] transition mx-1 inline-block"
>
terms and condition
</Link>
</a>
</span>
</div>
</div>
+13 -31
View File
@@ -78,25 +78,7 @@ const AccountDashboard = ({ className, bannerList, offersList, imageServer }) =>
{/* for flat banner section */}
<div className="w-full grid-cols-1 md:grid-cols-2 2xl:grid-cols-3 grid items-center justify-center gap-2 md:gap-4">
{/* OFFER LIST DISPLAY */}
{/* <>
{(offersList && offersList?.length > 0) &&
offersList.map((item, index) => {
let thePrice = PriceFormatter(
item?.price * 0.01,
item?.currency_code,
item?.currency
);
let image = `${imageServer}${localStorage.getItem("session_token")}/job/${item.job_uid}`
if(index >= 3) {
return(
<div key={item.offer_uid}>
<NewOfferCardFlat datas={item} image={image} price={thePrice} setOfferPopout={setOfferPopout} />
</div>
)
}
})}
</> */}
{getLowerBanner?.map((props, idx) => {
let image = getImage(props);
@@ -150,15 +132,15 @@ const TopBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
</Link>
<div className="rounded-b-xl bg-white dark:bg-dark-white">
<div className="border-b border-slate-300 px-2 py-1 h-[5.4rem] flex flex-col gap-2 dark:text-white">
<Link to={link_path} className="font-bold text-lg line-clamp-1">
<Link to={link_path} className="font-bold text-xl line-clamp-1">
{title}
</Link>
<Link to={link_path} className="text-sm">
<Link to={link_path} className="text-base line-clamp-1">
{desc}
</Link>
</div>
<div className="flex justify-between w-full p-1 items-center">
<Link to={link_path} className="text-slate-300 font-semibold text-sm">
<Link to={link_path} className="text-slate-300 font-semibold text-base">
{btn}
</Link>
<button className="flex items-center justify-center gap-2">
@@ -201,7 +183,7 @@ const NewOfferCard = ({ datas, hidden = false, price, setOfferPopout, image }) =
</div>
<div className="rounded-b-xl bg-transparent dark:bg-dark-transparent">
<div className="border-b border-slate-300 px-2 py-1 h-[5.4rem] flex flex-col gap-2 dark:text-white">
<h1 className="font-bold text-lg line-clamp-1 text-center">
<h1 className="font-bold text-xl line-clamp-1 text-center">
{datas?.title}
</h1>
<div className="card-buttons flex justify-center items-center space-x-2">
@@ -210,7 +192,7 @@ const NewOfferCard = ({ datas, hidden = false, price, setOfferPopout, image }) =
onClick={() =>
setOfferPopout({ show: true, data: { ...datas, image } })
}
className="btn-shine w-2/3 h-[40px] text-white rounded-full text-sm bg-pink flex justify-center items-center"
className="btn-shine w-2/3 h-[40px] text-white rounded-full text-base bg-pink flex justify-center items-center"
>
Start Now
</button>
@@ -240,7 +222,7 @@ const NewOfferCardFlat = ({ datas, hidden = false, price, setOfferPopout, image
<div className="w-full xxs:flex justify-between items-center border-b border-slate-300 p-2">
<div className="min-h-[130px] sm:min-h-[100px] flex justify-between items-center">
<div className="px-2 flex flex-col gap-2 dark:text-white">
<h1 className="font-bold text-lg line-clamp-1 text-center">
<h1 className="font-bold text-xl line-clamp-1 text-center">
{datas?.title}
</h1>
<div className="card-buttons flex items-center space-x-2">
@@ -249,7 +231,7 @@ const NewOfferCardFlat = ({ datas, hidden = false, price, setOfferPopout, image
onClick={() =>
setOfferPopout({ show: true, data: { ...datas, image } })
}
className="btn-shine w-28 h-[40px] text-white rounded-full text-sm bg-pink flex justify-center items-center"
className="btn-shine w-28 h-[40px] text-white rounded-full text-base bg-pink flex justify-center items-center"
>
Start Now
</button>
@@ -301,10 +283,10 @@ const LowerBanner = ({ image, title = "", desc = "", btn, link_path, card_type,
<div className="w-full xxs:flex justify-between items-center border-b border-slate-300 p-2">
<div className="min-h-[130px] sm:min-h-[100px] flex justify-between items-center">
<div className="px-2 flex flex-col gap-2 dark:text-white">
<Link to={newLinkPath} className="text-lg font-bold">
<Link to={newLinkPath} className="text-xl font-bold line-clamp-1">
{title}
</Link>
<p to={newLinkPath} className="text-sm">
<p to={newLinkPath} className="text-base line-clamp-1">
{desc}
</p>
</div>
@@ -319,7 +301,7 @@ const LowerBanner = ({ image, title = "", desc = "", btn, link_path, card_type,
</Link>
</div>
<div className="flex justify-between w-full p-1 items-center">
<Link to={newLinkPath} className="text-slate-300 font-semibold text-sm">
<Link to={newLinkPath} className="text-slate-300 font-semibold text-base">
{btn}
</Link>
<button className="flex items-center justify-center gap-2">
@@ -370,10 +352,10 @@ const BannerSection = ({ banners, variant }) => {
}`}
>
<div className="border-b border-slate-300 px-2 py-1 h-[5.4rem] flex flex-col gap-2">
<Link to={link_path} className="font-bold text-lg">
<Link to={link_path} className="font-bold text-xl">
{short_title}
</Link>
<Link to={link_path} className="text-sm">
<Link to={link_path} className="text-base">
{short_description}
</Link>
</div>
+6 -38
View File
@@ -22,22 +22,6 @@ export default function FamilyDash() {
const { userDetails } = useSelector((state) => state?.userDetails);
// let [reloadBanner, setReloadBanner] = useState(0)
// useEffect(()=>{
// if(reloadBanner >= 2){
// dispatch(tableReload({ type: "FAMILYBANNERSLIST" })); // RELOAD FAMILY BANNERS LIST EVERY 10 MINS
// setReloadBanner(0)
// }
// const timer = setInterval(()=>{
// setReloadBanner(prev => prev+1)
// },300000)
// return ()=>{
// clearInterval(timer)
// }
// },[reloadBanner])
return (
<>
<div>
@@ -46,13 +30,13 @@ export default function FamilyDash() {
<div className="text-white mb-4 min-h-[3rem] px-2 w-full flex justify-between items-center rounded-xl bg-family-header-bg">
<div className="w-full">
<div className="w-full flex flex-wrap gap-x-4 ">
<p className="text-lg font-normal leading-5">Welcome</p>
<p className="text-xl font-normal leading-5">Welcome</p>
<div className="">
<h1 className="text-lg font-normal leading-5">{`${userDetails?.firstname} ${userDetails?.lastname}`}</h1>
<h1 className="text-xl font-normal leading-5">{`${userDetails?.firstname} ${userDetails?.lastname}`}</h1>
</div>
</div>
</div>
<div className="py-1 w-full text-sm text-right self-end">
<div className="py-1 w-full text-base text-right self-end">
<p className="leading-4">Last Login: {`${userDetails?.last_login.split(' ')[0]}`}</p>
</div>
</div>
@@ -76,8 +60,8 @@ export default function FamilyDash() {
<img className="w-full h-[10rem] object-cover rounded-t-xl" src={content.banner.image} alt='banner image' />
<div className="flex flex-col justify-between">
<div className="px-2 py-2 border-b border-transparent min-h-[4rem] flex flex-col gap-1">
<h1 className="text-lg text-[#083e21] dark:text-white font-bold tracking-wide">{content.banner.text}</h1>
<p className="text-sm text-black dark:text-white">{content.banner.description}</p>
<h1 className="text-xl text-[#083e21] dark:text-white font-bold tracking-wide">{content.banner.text}</h1>
<p className="text-base text-black dark:text-white">{content.banner.description}</p>
</div>
</div>
</div>
@@ -104,7 +88,7 @@ export default function FamilyDash() {
</div>
<div className="flex flex-col justify-between">
<div className="px-2 py-1 border-b border-transparent min-h-[2rem] flex justify-between items-center gap-1">
<h1 className="text-lg text-[#083e21] dark:text-white font-bold tracking-wide">{item?.content}</h1>
<h1 className="text-xl text-[#083e21] dark:text-white font-bold tracking-wide">{item?.content}</h1>
<div className="flex justify-center gap-1">
<div className="w-1 h-1 bg-slate-400 rounded-full"></div>
<div className="w-1 h-1 bg-slate-400 rounded-full"></div>
@@ -121,22 +105,6 @@ export default function FamilyDash() {
}
</>
}
{/* {familyOffers?.result_list && familyOffers?.result_list.length > 0 && (
<MyOffersFamilyTable
familyOffers={familyOffers?.result_list}
image_server={familyOffers?.session_image_server}
className="mb-10"
/>
)} */}
{/* {trending && trending.length > 0 && (
<FamilyActiveLSlde
trending={trending}
className="mb-10"
image_server={serverImg}
/>
)} */}
</div>
</div>
+5 -3
View File
@@ -1,4 +1,5 @@
import React, { useState, useEffect } from "react";
import {Navigate} from 'react-router-dom'
import datas from "../../data/product_data.json";
import Layout from "../Partials/Layout";
import usersService from "../../services/UsersService";
@@ -43,9 +44,10 @@ export default function Home(props) {
}
</>
) : (
<div>
You are not logged in or your account type is not supported.
</div>
// <div>
// You are not logged in or your account type is not supported.
// </div>
<Navigate to='/login' />
)}
</>
</div>
@@ -57,6 +57,7 @@ export default function LockJob({
</div>
) : (
<>
<div className='md:grid md:grid-cols-4'>
<div className="px-4 py-2 w-full md:col-span-3 md:border-r-1">
<div className="min-h-[200px]">
<h2 className="w-full flex gap-1 items-center font-semibold text-slate-900 dark:text-white tracking-wide">
@@ -277,6 +278,7 @@ export default function LockJob({
</div>
</div>
</div>
</div>
</>
)}
</>
+88 -103
View File
@@ -133,11 +133,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
// let addedIntDate = marketInt?.added?.split(" ")[0];
// let expireIntDate = marketInt?.expire?.split(" ")[0];
let cleanedText = details?.job_description
?.replace(/&lt;/g, "<")
.replace(/&gt;/g, ">")
.replace(/&quot;/g, '"')
.replace(/&amp;/g, "&");
let cleanedText = details?.job_description?.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&amp;/g, "&");
return (
<ModalCom action={onClose} situation={situation}>
@@ -149,7 +145,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
<CloseIcon onClose={onClose} />
</div>
<div className="md:grid md:grid-cols-4 bg-white dark:bg-dark-white text-slate-900 dark:text-white rounded-lg">
<div className="bg-white dark:bg-dark-white text-slate-900 dark:text-white rounded-lg">
{details?.offer_depend_uid ?
<LockJob
marketPlaceProduct={marketPlaceProduct}
@@ -164,7 +160,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
/>
:
<>
<div className="px-4 py-2 w-full md:col-span-3 md:border-r-1">
<div className="px-4 py-2 w-full">
<div className="min-h-[300px]">
<h2 className="w-full flex gap-1 items-center font-semibold text-slate-900 dark:text-white tracking-wide">
{details?.offer_depend_uid && <i className="fa-solid fa-lock p-1 text-red-500 text-[12px]"></i>}
@@ -190,15 +186,15 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
danger: true,
},
].map(({ name, content, danger }, idx) => (
<div className={`my-3 md:flex items-start`} key={idx}>
<div className={`my-3 flex-col gap-1`} key={idx}>
<label className="py-2 job-label w-full md:w-[19%]">
{name}
</label>
<div
className={`w-full p-2 md:w-3/4 text-slate-900 dark:text-white market-pop rounded-2xl ${
className={`w-full p-2 text-slate-900 dark:text-white market-pop rounded-2xl ${
name == "Description"
? "min-h-[150px] max-h-[150px] h-full overflow-y-auto break-words bg-slate-50"
: name == "Delivery Detail" ? " overflow-y-auto h-full min-h-[150px] max-h-[150px] bg-slate-50"
? "min-h-[60px] max-h-[75px] h-full overflow-y-auto break-words bg-slate-50"
: name == "Delivery Detail" ? " overflow-y-auto h-full min-h-[200px] max-h-[200px] bg-slate-50"
: "h-full flex items-center"
}`}
>
@@ -237,122 +233,111 @@ const MarketPopUp = ({ details, onClose, situation, marketInt, marketPlaceProduc
))}
</div>
<hr className='my-1' />
<div className='w-full'>
<label className="job-label w-full flex gap-2 items-center">
If you have any questions about this task:
<span className={`text-sm ${marketMsg.state ? 'text-[#57cd89]' : 'text-red-500'}`}>
{marketMsg.state && "Message Sent!"}
{errMsg.market && "Failed to send"}
</span>
</label>
<div className="w-full flex items-center gap-3">
<div className="w-full">
<textarea
className={`p-1 w-full text-sm text-slate-900 dark:text-white ${
marketMsg.loading && "italic text-[#9CA3AF]"
} bg-transparent outline-none border-2 border-slate-300 rounded-md`}
rows="3"
style={{ resize: "none" }}
placeholder="Enter message here ..."
value={marketMsg.loading ? "Sending..." : textValue}
onChange={handleInputChange}
/>
</div>
<div className="relative flex flex-col">
<button
className="rounded-full flex justify-center items-center w-12 h-11 bg-yellow-500 text-white"
name="market-message"
onClick={MarketDetail}
disabled={marketMsg.loading}
>
{marketMsg.loading ? (
<LoadingSpinner size={5} color="white" />
) : (
// "Send Message"
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 11 20"
id="Arrow"
className="w-[0.7rem]"
<div className='w-full grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-8 items-center'>
<div className='col-span-1 md:col-span-2 flex flex-col justify-center gap-2'>
<label className="job-label w-full flex gap-2 items-center">
If you have any questions about this task:
<span className={`text-sm ${marketMsg.state ? 'text-[#57cd89]' : 'text-red-500'}`}>
{marketMsg.state && "Message Sent!"}
{errMsg.market && "Failed to send"}
</span>
</label>
<div className="w-full flex items-center gap-3">
<div className="w-full">
<textarea
className={`p-1 w-full text-sm text-slate-900 dark:text-white ${
marketMsg.loading && "italic text-[#9CA3AF]"
} bg-transparent outline-none border-2 border-slate-300 rounded-md`}
rows="3"
style={{ resize: "none" }}
placeholder="Enter message here ..."
value={marketMsg.loading ? "Sending..." : textValue}
onChange={handleInputChange}
/>
</div>
<div className="relative flex flex-col">
<button
className="rounded-full flex justify-center items-center w-12 h-11 bg-yellow-500 text-white"
name="market-message"
onClick={MarketDetail}
disabled={marketMsg.loading}
>
<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>
{/* <span className="text-sm text-[#57cd89]">
{marketMsg.state && "Sent!"}
{errMsg.market && "Failed"}
</span> */}
{marketMsg.loading ? (
<LoadingSpinner size={5} color="white" />
) : (
// "Send Message"
<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>
</div>
</div>
</div>
</div>
<div className="py-2 w-full md:col-span-1 h-full flex flex-col rounded-2xl">
<div className="mx-auto bg-[#f1f8ff] dark:bg-[#C2C8D3] px-4 rounded-md w-full h-full md:min-h-[420px] flex flex-col justify-between">
<div className="w-full flex flex-col justify-center pb-4 gap-2">
<p className="job-label w-full">
Interested?
<div className="span-1 flex flex-col justify-center mb-4 gap-2">
<p className="flex items-center tracking-wide">
<span className="job-label">Interest Count: </span> <b className="ml-1">{interestCount.length > 0 ? interestCount[0].interest_count : '0'}</b>
</p>
<hr />
{/* <hr /> */}
<button
className="btn-gradient text-white px-2 py-2 border-4 border-slate-300 text-lg lg:text-xl font-medium rounded-2xl"
className="btn-gradient text-white p-1 border-4 border-slate-300 text-lg lg:text-xl font-medium rounded-2xl"
name="market-interest"
onClick={ManageInterest}
>
{" "}
<div className="flex md:flex-col justify-center gap-2">
<span>Notify</span>
<span>Owner</span>
<span>I am Interested</span>
{/* <span>Owner</span> */}
</div>
</button>
<>
{manageInt.loading ? (
<p className="text-sm italic">please wait...</p>
) : (
<>
{manageInt?.msg !== "" && (
<p
className={`text-sm italic ${
manageInt?.state ? "text-green-500" : "text-red-500"
}`}
>
{manageInt?.msg}
</p>
)}
</>
)}
</>
</div>
<div className="text-slate-900">
<p className="flex items-center tracking-wide">
<span className="job-label">Interest: </span> <b className="ml-1">{interestCount.length > 0 ? interestCount[0].interest_count : '0'}</b>
</p>
<hr />
<p className="my-1 flex flex-col">
<span className="job-label">Expire: </span>
<span> {new Date(details.expire).toLocaleString()} </span>
</p>
</div>
</div>
<div>
{manageInt.loading ? (
<p className="text-sm italic">please wait...</p>
) : (
<>
{manageInt?.msg !== "" && (
<p
className={`text-sm italic ${
manageInt?.state ? "text-green-500" : "text-red-500"
}`}
>
{manageInt?.msg}
</p>
)}
</>
)}
</div>
</div>
</>
}
</div>
<div className="modal-footer-wrapper">
<div className="modal-footer-wrapper flex justify-between gap-2 items-center">
<div className="text-slate-900">
<p className="my-1 flex flex-col">
<span className="job-label">Expire: </span>
<span> {new Date(details.expire).toLocaleString()} </span>
</p>
</div>
<button
className="custom-btn bg-transparent border border-red-500 text-red-500 ml-auto"
name="cancel"
onClick={onClose}
>
Cancel
Close
</button>
</div>
</div>
+1 -1
View File
@@ -480,7 +480,7 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
{/* end Language list items*/}
</li>
<li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg">
<Link to="#" className="notifications">
<Link to="/settings" className="notifications">
<div className="name">
<p className="text-sm py-2 px-4 text-dark-gray dark:text-white hover:text-sky-blue transition font-medium">
Account Settings
+2 -2
View File
@@ -1,6 +1,6 @@
/* Regular Weight */
@font-face {
font-family: "Product Sans";
font-family: Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif,"Product Sans";
src: url("./assets/fonts/Product Sans Regular.ttf");
}
.nft-main-container {
@@ -8,7 +8,7 @@
}
/* Bold Weight */
@font-face {
font-family: "Product Sans";
font-family: Roboto,"Product Sans";
src: url("./assets/fonts/Product Sans Bold.ttf");
}
.SENDER {
+1 -1
View File
@@ -90,7 +90,7 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
apiCall
.loadProfile()
.then((res) => {
if (res?.data?.internal_return < 0) {
if (!res?.data?.internal_return || res?.data?.internal_return < 0) {
setIsLogin({ loading: false, status: false });
return;
}
+2 -2
View File
@@ -1674,7 +1674,7 @@ class usersService {
}
postAuxEnd(uri, reqData, uploadPost=false) {
const endPoint = uploadPost ? process.env.REACT_APP_MEDIA_LINK + uri : 'https://apigate.orion.g1.wrenchboard.com/en/wrench/api/v1' + 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");
// session_token = session_token !=null ?session_token : '';
// 'Authorization': `Basic ${(session_token !=null) ?session_token : ''}`,
@@ -1695,7 +1695,7 @@ class usersService {
if(localStorage && localStorage.getItem('myloc')){
reqData.loc = localStorage.getItem('myloc')
}
return Axios.post(endPoint, reqData)
return Axios.post(endPoint, reqData,{timeout: 7000 })
.then((response) => {
// console.log(response);
// console.log("~~~~~~~ WrenchBoard::POST ~~~~~~~~");