Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ec512777e | |||
| 9dde87277c | |||
| a176e8e6d5 | |||
| 8106f6a049 | |||
| aa26a63fcf | |||
| 3fbcfe5797 | |||
| 510545bf82 | |||
| 7a149b87bd | |||
| 391f6e0abd | |||
| 057691b2f9 | |||
| d085636843 | |||
| 0150caf4bb | |||
| dd580cadfd | |||
| a59588d4a7 |
@@ -53,6 +53,7 @@ import LndPage from "./views/LndPage";
|
|||||||
import FamilySettingsPage from "./views/FamilySettingsPage";
|
import FamilySettingsPage from "./views/FamilySettingsPage";
|
||||||
import AppDownloadPage from "./views/AppDownloadPage";
|
import AppDownloadPage from "./views/AppDownloadPage";
|
||||||
import JobGroupsPage from "./views/JobGroupsPage";
|
import JobGroupsPage from "./views/JobGroupsPage";
|
||||||
|
import YourPages from "./views/YourPage_";
|
||||||
|
|
||||||
export default function Routers() {
|
export default function Routers() {
|
||||||
return (
|
return (
|
||||||
@@ -115,6 +116,7 @@ export default function Routers() {
|
|||||||
<Route exact path="/acc-family" element={<FamilyAccPage />} />
|
<Route exact path="/acc-family" element={<FamilyAccPage />} />
|
||||||
<Route exact path="/manage-family" element={<FamilyManagePage />} />
|
<Route exact path="/manage-family" element={<FamilyManagePage />} />
|
||||||
<Route exact path="/start-job" element={<StartJob />} />
|
<Route exact path="/start-job" element={<StartJob />} />
|
||||||
|
<Route exact path="/yourpage" element={<YourPages />} />
|
||||||
<Route exact path="/manage-active-job" element={<ManageActiveJobs />} />
|
<Route exact path="/manage-active-job" element={<ManageActiveJobs />} />
|
||||||
<Route exact path="/blog-page" element={<BlogPage />} />
|
<Route exact path="/blog-page" element={<BlogPage />} />
|
||||||
<Route exact path="/offer-interest" element={<OffersInterestPage />} />
|
<Route exact path="/offer-interest" element={<OffersInterestPage />} />
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 50" id="Page"><path fill-rule="evenodd" d="M0 13V2a2 2 0 0 1 2-2h64a2 2 0 0 1 2 2v11H0Zm0 4v31a2 2 0 0 0 2 2h20V17H0Zm26 33h40a2 2 0 0 0 2-2V17H26v33Z" fill="#767fad" class="color000000 svgShape"></path></svg>
|
||||||
|
After Width: | Height: | Size: 265 B |
@@ -172,9 +172,8 @@ const AssignTaskPopout = React.memo(
|
|||||||
<ModalCom
|
<ModalCom
|
||||||
action={action}
|
action={action}
|
||||||
situation={situation}
|
situation={situation}
|
||||||
className="assign-task-popup"
|
|
||||||
>
|
>
|
||||||
<div className="w-full h-full lg:w-[700px] lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
|
<div className="w-11/12 lg:w-[700px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
Assign task to{" "}
|
Assign task to{" "}
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ const FamilyForm = ({
|
|||||||
popUpHandler,
|
popUpHandler,
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div className="logout-modal-wrapper lg:w-[460px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
|
<div className="logout-modal-wrapper w-11/12 lg:w-[460px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple dark:border-[#5356fb29] ">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple dark:border-[#5356fb29] ">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
Add Members
|
Add Members
|
||||||
|
|||||||
@@ -462,6 +462,15 @@ export default function Icons({ name }) {
|
|||||||
clipRule="evenodd"
|
clipRule="evenodd"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
|
) : name === "my-page" ? (
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 50" id="Page">
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M0 13V2a2 2 0 0 1 2-2h64a2 2 0 0 1 2 2v11H0Zm0 4v31a2 2 0 0 0 2 2h20V17H0Zm26 33h40a2 2 0 0 0 2-2V17H26v33Z"
|
||||||
|
fill="#ffffff"
|
||||||
|
className="color000000 svgShape"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
) : name === "accordion-minus" ? (
|
) : name === "accordion-minus" ? (
|
||||||
<svg
|
<svg
|
||||||
width="20"
|
width="20"
|
||||||
@@ -510,20 +519,48 @@ export default function Icons({ name }) {
|
|||||||
) : name === "master-card" ? (
|
) : name === "master-card" ? (
|
||||||
<img className="w-[30px]" src={MasterCard} alt="card" />
|
<img className="w-[30px]" src={MasterCard} alt="card" />
|
||||||
) : name === "new-dashboard" ? (
|
) : name === "new-dashboard" ? (
|
||||||
<img className="w-[17px] h-[17px]" src={localImgLoad('images/icons/dashboard.svg')} alt="dashboard" />
|
<img
|
||||||
|
className="w-[17px] h-[17px]"
|
||||||
|
src={localImgLoad("images/icons/dashboard.svg")}
|
||||||
|
alt="dashboard"
|
||||||
|
/>
|
||||||
) : name === "new-family" ? (
|
) : name === "new-family" ? (
|
||||||
<img className="w-[17px] h-[17px]" src={localImgLoad('images/icons/family.svg')} alt="family" />
|
<img
|
||||||
|
className="w-[17px] h-[17px]"
|
||||||
|
src={localImgLoad("images/icons/family.svg")}
|
||||||
|
alt="family"
|
||||||
|
/>
|
||||||
) : name === "new-logout" ? (
|
) : name === "new-logout" ? (
|
||||||
<img className="w-[45px] rounded-full bg-white p-1" src={localImgLoad('images/icons/logout.svg')} alt="logout" />
|
<img
|
||||||
|
className="w-[45px] rounded-full bg-white p-1"
|
||||||
|
src={localImgLoad("images/icons/logout.svg")}
|
||||||
|
alt="logout"
|
||||||
|
/>
|
||||||
) : name === "new-market" ? (
|
) : name === "new-market" ? (
|
||||||
<img className="w-[17px] h-[17px]" src={localImgLoad('images/icons/market.svg')} alt="market" />
|
<img
|
||||||
|
className="w-[17px] h-[17px]"
|
||||||
|
src={localImgLoad("images/icons/market.svg")}
|
||||||
|
alt="market"
|
||||||
|
/>
|
||||||
) : name === "new-mytask" ? (
|
) : name === "new-mytask" ? (
|
||||||
<img className="w-[17px] h-[17px]" src={localImgLoad('images/icons/my-task.svg')} alt="task" />
|
<img
|
||||||
|
className="w-[17px] h-[17px]"
|
||||||
|
src={localImgLoad("images/icons/my-task.svg")}
|
||||||
|
alt="task"
|
||||||
|
/>
|
||||||
) : name === "family-id" ? (
|
) : name === "family-id" ? (
|
||||||
<img className="w-[20px] h-[20px]" src={localImgLoad('images/icons/family-id.svg')} alt="family-id" />
|
<img
|
||||||
|
className="w-[20px] h-[20px]"
|
||||||
|
src={localImgLoad("images/icons/family-id.svg")}
|
||||||
|
alt="family-id"
|
||||||
|
/>
|
||||||
) : name === "family-pin" ? (
|
) : name === "family-pin" ? (
|
||||||
<img className="w-[20px] h-[20px]" src={localImgLoad('images/icons/family-pin.svg')} alt="family-pin" />
|
<img
|
||||||
): (
|
className="w-[20px] h-[20px]"
|
||||||
|
src={localImgLoad("images/icons/family-pin.svg")}
|
||||||
|
alt="family-pin"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
""
|
""
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
|||||||
.replace(/&/g, "&");
|
.replace(/&/g, "&");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalCom action={onClose} situation={situation} className="edit-popup">
|
<ModalCom action={onClose} situation={situation}>
|
||||||
<div className="logout-modal-wrapper md:w-[650px] md:h-[580px] h-full bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="logout-modal-wrapper w-11/12 md:w-[650px] md:h-[580px] h-full bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px]">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px]">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
{details.offer_code}
|
{details.offer_code}
|
||||||
|
|||||||
@@ -600,10 +600,10 @@ const PopModal = ({
|
|||||||
myRef,
|
myRef,
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<ModalCom action={popUpHandler} situation={popUp} className="edit-popup">
|
<ModalCom action={popUpHandler} situation={popUp}>
|
||||||
<div
|
<div
|
||||||
ref={myRef}
|
ref={myRef}
|
||||||
className="message-modal-wrapper min-w-[500px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl"
|
className="message-modal-wrapper w-11/12 min-w-[350px] max-w-[700px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto"
|
||||||
>
|
>
|
||||||
<div className="message-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="message-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ function ConfirmNairaWithdraw({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalCom action={action} situation={situation} className="edit-popup">
|
<ModalCom action={action} situation={situation}>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
|
<div className="logout-modal-wrapper w-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h2 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h2 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ const CreditPopup = ({ details, onClose, situation, walletItem }) => {
|
|||||||
situation={situation}
|
situation={situation}
|
||||||
className="assign-task-popup"
|
className="assign-task-popup"
|
||||||
>
|
>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="logout-modal-wrapper w-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
{confirmCredit?.show?.acceptConfirm?.loader
|
{confirmCredit?.show?.acceptConfirm?.loader
|
||||||
|
|||||||
@@ -289,8 +289,8 @@ function NairaWithdraw({
|
|||||||
console.log("Testing Wallet Country", wallet?.walletCountry[0]?.code);
|
console.log("Testing Wallet Country", wallet?.walletCountry[0]?.code);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalCom action={action} situation={situation} className="edit-popup">
|
<ModalCom action={action} situation={situation}>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
|
<div className="logout-modal-wrapper w-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { useContext, useEffect, useMemo, useState } from "react";
|
import React, { useContext, useMemo, useState } from "react";
|
||||||
import { Link, useLocation, useNavigate } from "react-router-dom";
|
import { Link, useLocation, useNavigate } from "react-router-dom";
|
||||||
import bank1 from "../../assets/images/bank-1.png";
|
import bank1 from "../../assets/images/bank-1.png";
|
||||||
import bank2 from "../../assets/images/bank-2.png";
|
import bank2 from "../../assets/images/bank-2.png";
|
||||||
@@ -238,6 +238,9 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
|
|||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
{/* balance */}
|
{/* balance */}
|
||||||
|
|
||||||
|
{/* My Page Button */}
|
||||||
|
<PageButton />
|
||||||
|
|
||||||
{/*<div className="lg:hidden block"></div>*/}
|
{/*<div className="lg:hidden block"></div>*/}
|
||||||
<WalletHeader
|
<WalletHeader
|
||||||
@@ -412,6 +415,17 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
|
|||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
{userDetails && userDetails?.account_type !== "FAMILY" && (
|
||||||
|
<li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg">
|
||||||
|
<Link to="/yourpage" 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">
|
||||||
|
My Page
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
)}
|
||||||
{userDetails && userDetails?.account_type !== "FAMILY" && (
|
{userDetails && userDetails?.account_type !== "FAMILY" && (
|
||||||
<>
|
<>
|
||||||
<li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg">
|
<li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg">
|
||||||
@@ -656,3 +670,29 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const PageButton = () => {
|
||||||
|
return (
|
||||||
|
<Link to="/yourpage" className="lg:flex hidden user-balance cursor-pointer lg:w-[152px] w-[150px] h-[48px] items-center rounded-full relative bg-sky-blue pr-1.5 pl-4">
|
||||||
|
<div
|
||||||
|
className="flex items-center lg:justify-between justify-center w-full h-full"
|
||||||
|
>
|
||||||
|
<span className="lg:block hidden w-[25px]">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 50" id="Page">
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M0 13V2a2 2 0 0 1 2-2h64a2 2 0 0 1 2 2v11H0Zm0 4v31a2 2 0 0 0 2 2h20V17H0Zm26 33h40a2 2 0 0 0 2-2V17H26v33Z"
|
||||||
|
fill="#ffffff"
|
||||||
|
className="color000000 svgShape"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<p className="lg:text-xl text-lg font-bold text-white">My Page</p>
|
||||||
|
<span className="lg:block hidden">
|
||||||
|
{/* <Icons name="deep-plus" /> */}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||||
|
|
||||||
|
const UpdateButton = ({ onClick, loading }) => (
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
onClick={onClick}
|
||||||
|
disabled={loading}
|
||||||
|
className="text-lg text-white bg-sky-blue px-4 py-2 hover:opacity-90 rounded-full"
|
||||||
|
>
|
||||||
|
{loading ? <LoadingSpinner size="6" color="sky-blue" /> : "Update"}
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default UpdateButton;
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import InputCom from "../Helpers/Inputs/InputCom/index";
|
||||||
|
import UpdateButton from "./UpdateButton";
|
||||||
|
|
||||||
|
const YourPageForm = ({ values, onChange, onSubmit, loading }) => (
|
||||||
|
<div className="ml-16 my-2 flex flex-col gap-3">
|
||||||
|
<div className="field w-full">
|
||||||
|
<InputCom
|
||||||
|
fieldClass="px-4"
|
||||||
|
parentClass="flex items-center gap-1 justify-between"
|
||||||
|
labelClass="flex-[0.2] mb-0 font-semibold"
|
||||||
|
inputClass="flex-[0.8]"
|
||||||
|
inputBg="bg-slate-100"
|
||||||
|
label="Introduction: "
|
||||||
|
type="text"
|
||||||
|
name="intro"
|
||||||
|
value={values.intro}
|
||||||
|
inputHandler={onChange}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="field w-full mb-6 flex gap-1 justify-between">
|
||||||
|
<label className="text-[#181c32] dark:text-white text-[13.975px] font-semibold flex flex-[0.2] mt-2.5">
|
||||||
|
Brief Details:
|
||||||
|
</label>
|
||||||
|
<textarea
|
||||||
|
style={{ resize: "none" }}
|
||||||
|
className="text-base px-4 py-2 rounded-md min-h-[100px] text-dark-gray dark:text-white w-full bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-none flex-[0.8]"
|
||||||
|
name="description"
|
||||||
|
cols="30"
|
||||||
|
rows="2"
|
||||||
|
value={values.description}
|
||||||
|
onChange={onChange}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="w-full flex justify-end mb-2">
|
||||||
|
<UpdateButton onClick={onSubmit} loading={loading} />
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default YourPageForm;
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
import React, { useState } from "react";
|
||||||
|
import Layout from "../Partials/Layout";
|
||||||
|
import usersService from "../../services/UsersService";
|
||||||
|
import YourPageForm from "./YourPageForm";
|
||||||
|
|
||||||
|
const YourPage = () => {
|
||||||
|
const [pageValues, setPageValues] = useState({
|
||||||
|
intro: "",
|
||||||
|
description: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
const [response, setResponse] = useState({
|
||||||
|
loading: false,
|
||||||
|
data: {},
|
||||||
|
error: "",
|
||||||
|
msg: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
const handleChange = (event) => {
|
||||||
|
let { name, value } = event.target;
|
||||||
|
setPageValues((prev) => ({ ...prev, [name]: value }));
|
||||||
|
};
|
||||||
|
|
||||||
|
const updateYourPageDetails = async () => {
|
||||||
|
try {
|
||||||
|
setResponse({ loading: true, error: "", msg: "" });
|
||||||
|
|
||||||
|
let api = new usersService();
|
||||||
|
const res = await api.MyPageIntro(pageValues);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
setResponse({
|
||||||
|
loading: false,
|
||||||
|
data: res.data,
|
||||||
|
msg: "Page updated successfully",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Clear form after successful update
|
||||||
|
setPageValues({ intro: "", description: "" });
|
||||||
|
}, 2000);
|
||||||
|
} catch (error) {
|
||||||
|
setResponse({
|
||||||
|
loading: false,
|
||||||
|
data: {},
|
||||||
|
error: "Error updating page",
|
||||||
|
msg: "",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Layout>
|
||||||
|
<div className="notification-page w-full mb-10">
|
||||||
|
<div className="notification-wrapper w-full">
|
||||||
|
<div className="update-table w-full h-full p-4 bg-white dark:bg-dark-white overflow-y-auto rounded-2xl section-shadow min-h-[520px]">
|
||||||
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide mb-2">
|
||||||
|
My page
|
||||||
|
</h1>
|
||||||
|
<hr />
|
||||||
|
<YourPageForm
|
||||||
|
values={pageValues}
|
||||||
|
onChange={handleChange}
|
||||||
|
onSubmit={updateYourPageDetails}
|
||||||
|
loading={response.loading}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Layout>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default YourPage;
|
||||||
@@ -105,7 +105,7 @@ function FamilyOfferJobPopout({ details, onClose, situation }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalCom action={onClose} situation={situation}>
|
<ModalCom action={onClose} situation={situation}>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="logout-modal-wrapper w-[90%] md:w-[768px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
Start Task
|
Start Task
|
||||||
|
|||||||
@@ -250,8 +250,8 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
|
|||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="md:flex bg-white dark:bg-dark-white rounded-lg shadow-lg">
|
<div className="md:grid grid-cols-2 bg-white dark:bg-dark-white rounded-lg shadow-lg">
|
||||||
<div className="p-4 w-full md:w-2/4 md:border-r-2">
|
<div className="p-4 pb-3 w-full md:border-r-2">
|
||||||
{/* <p className='text-lg font-semibold text-slate-900 tracking-wide'>{details.title}</p> */}
|
{/* <p className='text-lg font-semibold text-slate-900 tracking-wide'>{details.title}</p> */}
|
||||||
|
|
||||||
{/* INPUT SECTION */}
|
{/* INPUT SECTION */}
|
||||||
@@ -277,7 +277,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="my-3">
|
<div className="">
|
||||||
<label className="w-full text-slate-900 dark:text-white tracking-wide font-semibold">
|
<label className="w-full text-slate-900 dark:text-white tracking-wide font-semibold">
|
||||||
Delivery Detail
|
Delivery Detail
|
||||||
</label>
|
</label>
|
||||||
@@ -293,153 +293,163 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* ACTION SECTION */}
|
{/* ACTION SECTION */}
|
||||||
<div className="p-4 w-full md:w-2/4 h-full">
|
<div className="p-4 w-ful flex flex-col justify-between">
|
||||||
<div className="grid grid-cols-3 my-4 border-b-2">
|
<h1 className="text-lg mt-3 font-medium tracking-wide text-black dark:text-white">Send this Task to:</h1>
|
||||||
{tabs.map(item => (
|
<div className="flex flex-col grow">
|
||||||
<button
|
<div className="grid grid-cols-3 mt-4">
|
||||||
className={`px-4 py-1 rounded-t-2xl ${selectedTab == item ? 'btn-gradient border-[2px] text-white' : 'bg-white text-[#000] border-t-[2px]'}`}
|
{tabs.map(item => (
|
||||||
value={item}
|
<button
|
||||||
name={item}
|
// className={`px-4 py-1 rounded-t-2xl ${selectedTab == item ? 'btn-gradient border-[2px] text-white' : 'bg-white text-[#000] border-t-[2px]'}`}
|
||||||
onClick={()=>setSelectedTab(item)}
|
className={`px-4 py-1 rounded-t-2xl border-t-[2px] transition-all duration-200 flex flex-col justify-center items-center ${selectedTab == item ? 'bg-red-50 dark:bg-[#D85A5A] text-slate-600 font-extrabold' : 'bg-white text-[#000]'}`}
|
||||||
|
value={item}
|
||||||
|
name={item}
|
||||||
|
onClick={()=>setSelectedTab(item)}
|
||||||
|
>
|
||||||
|
<div className={`mb-[1px] h-6 w-6 border-4 rounded-full transition-all duration-200 ${selectedTab == item ? 'border-white bg-emerald-500' : 'border-red-50 dark:border-[#D85A5A] bg-white'}`}></div>
|
||||||
|
{item[0].toUpperCase() + item.slice(1)}
|
||||||
|
</button>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
<div className="grow flex flex-col bg-red-50 dark:bg-[#D85A5A] rounded-b-2xl">
|
||||||
|
{selectedTab == 'family' &&
|
||||||
|
<Formik
|
||||||
|
initialValues={initialValues}
|
||||||
|
validationSchema={validationSchema.fields.family}
|
||||||
|
onSubmit={jobFieldHandler}
|
||||||
>
|
>
|
||||||
{item[0].toUpperCase() + item.slice(1)}
|
{(props) => {
|
||||||
</button>
|
return (
|
||||||
))}
|
<Form className="hidden">
|
||||||
|
{/* Assign to Family */}
|
||||||
|
<JobFieldInput
|
||||||
|
label="Assign to family"
|
||||||
|
select={true}
|
||||||
|
inputName="family"
|
||||||
|
value={props?.values.family}
|
||||||
|
data={familyList}
|
||||||
|
btnText="Assign to family"
|
||||||
|
optionText="Select Family"
|
||||||
|
loader={loader?.jobFields?.family}
|
||||||
|
errorHandler={errorHandler}
|
||||||
|
parentClass='w-full flex flex-col gap-4'
|
||||||
|
/>
|
||||||
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
|
{" "}
|
||||||
|
{props?.values?.family === "" && (
|
||||||
|
<span>{errMsg?.jobFields?.family}</span>
|
||||||
|
)}
|
||||||
|
</p>{" "}
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</Formik>
|
||||||
|
}
|
||||||
|
|
||||||
|
{selectedTab == 'public' &&
|
||||||
|
<Formik
|
||||||
|
initialValues={initialValues}
|
||||||
|
validationSchema={validationSchema.fields.public}
|
||||||
|
onSubmit={jobFieldHandler}
|
||||||
|
>
|
||||||
|
{(props) => {
|
||||||
|
return (
|
||||||
|
<Form className="">
|
||||||
|
{/* Offer this job to public input */}
|
||||||
|
<JobFieldInput
|
||||||
|
label="Offer this job to public"
|
||||||
|
select={true}
|
||||||
|
inputName="public"
|
||||||
|
value={props?.values.public}
|
||||||
|
data={publicArray}
|
||||||
|
btnText="Show Task to Public"
|
||||||
|
optionText="Select Duration"
|
||||||
|
loader={loader?.jobFields?.public}
|
||||||
|
errorHandler={errorHandler}
|
||||||
|
parentClass='w-full flex flex-col gap-4'
|
||||||
|
/>
|
||||||
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
|
{" "}
|
||||||
|
{props?.values.public === "" && (
|
||||||
|
<span>{errMsg?.jobFields?.public}</span>
|
||||||
|
)}
|
||||||
|
</p>{" "}
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</Formik>
|
||||||
|
}
|
||||||
|
|
||||||
|
{selectedTab == 'individual' &&
|
||||||
|
<Formik
|
||||||
|
initialValues={initialValues}
|
||||||
|
validationSchema={validationSchema.fields.individual}
|
||||||
|
onSubmit={jobFieldHandler}
|
||||||
|
>
|
||||||
|
{(props) => {
|
||||||
|
return (
|
||||||
|
<Form className="">
|
||||||
|
{/* Offer this job to individual input */}
|
||||||
|
<JobFieldInput
|
||||||
|
label="Offer this job to individual"
|
||||||
|
input={true}
|
||||||
|
inputName="individual"
|
||||||
|
value={props?.values.individual}
|
||||||
|
placeholder="Enter email of individual"
|
||||||
|
inputHandler={props?.handleChange}
|
||||||
|
btnText="Send Offer to Individual"
|
||||||
|
loader={loader?.jobFields?.individual}
|
||||||
|
errorHandler={errorHandler}
|
||||||
|
parentClass='w-full flex flex-col gap-4'
|
||||||
|
/>
|
||||||
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
|
{" "}
|
||||||
|
{props?.values.individual === "" && (
|
||||||
|
<span>{errMsg?.jobFields?.individual}</span>
|
||||||
|
)}
|
||||||
|
</p>{" "}
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</Formik>
|
||||||
|
}
|
||||||
|
|
||||||
|
{/* { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB != 0 && } */}
|
||||||
|
{selectedTab == 'group' &&
|
||||||
|
<Formik
|
||||||
|
initialValues={initialValues}
|
||||||
|
validationSchema={validationSchema.fields.group}
|
||||||
|
onSubmit={jobFieldHandler}
|
||||||
|
>
|
||||||
|
{(props) => {
|
||||||
|
return (
|
||||||
|
<Form className="">
|
||||||
|
{/* Offer this job to your group input */}
|
||||||
|
<JobFieldInput
|
||||||
|
label="Offer this job to your Group"
|
||||||
|
select={true}
|
||||||
|
inputName="group"
|
||||||
|
value={props?.values.group}
|
||||||
|
btnText="Send Order to Group"
|
||||||
|
optionText="Select Group"
|
||||||
|
loader={loader?.jobFields?.group}
|
||||||
|
errorHandler={errorHandler}
|
||||||
|
data={groupList}
|
||||||
|
parentClass='w-full flex flex-col gap-4'
|
||||||
|
/>
|
||||||
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
|
{" "}
|
||||||
|
{props?.values.group === "" && (
|
||||||
|
<span>{errMsg?.jobFields?.group}</span>
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
</Formik>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{selectedTab == 'family' &&
|
|
||||||
<Formik
|
|
||||||
initialValues={initialValues}
|
|
||||||
validationSchema={validationSchema.fields.family}
|
|
||||||
onSubmit={jobFieldHandler}
|
|
||||||
>
|
|
||||||
{(props) => {
|
|
||||||
return (
|
|
||||||
<Form className="mb-4 hidden">
|
|
||||||
{/* Assign to Family */}
|
|
||||||
<JobFieldInput
|
|
||||||
label="Assign to family"
|
|
||||||
select={true}
|
|
||||||
inputName="family"
|
|
||||||
value={props?.values.family}
|
|
||||||
data={familyList}
|
|
||||||
btnText="Assign to family"
|
|
||||||
optionText="Select Family"
|
|
||||||
loader={loader?.jobFields?.family}
|
|
||||||
errorHandler={errorHandler}
|
|
||||||
/>
|
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
|
||||||
{" "}
|
|
||||||
{props?.values?.family === "" && (
|
|
||||||
<span>{errMsg?.jobFields?.family}</span>
|
|
||||||
)}
|
|
||||||
</p>{" "}
|
|
||||||
</Form>
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
</Formik>
|
|
||||||
}
|
|
||||||
|
|
||||||
{selectedTab == 'public' &&
|
|
||||||
<Formik
|
|
||||||
initialValues={initialValues}
|
|
||||||
validationSchema={validationSchema.fields.public}
|
|
||||||
onSubmit={jobFieldHandler}
|
|
||||||
>
|
|
||||||
{(props) => {
|
|
||||||
return (
|
|
||||||
<Form className="mb-4">
|
|
||||||
{/* Offer this job to public input */}
|
|
||||||
<JobFieldInput
|
|
||||||
label="Offer this job to public"
|
|
||||||
select={true}
|
|
||||||
inputName="public"
|
|
||||||
value={props?.values.public}
|
|
||||||
data={publicArray}
|
|
||||||
btnText="Show Task to Public"
|
|
||||||
optionText="Select Duration"
|
|
||||||
loader={loader?.jobFields?.public}
|
|
||||||
errorHandler={errorHandler}
|
|
||||||
/>
|
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
|
||||||
{" "}
|
|
||||||
{props?.values.public === "" && (
|
|
||||||
<span>{errMsg?.jobFields?.public}</span>
|
|
||||||
)}
|
|
||||||
</p>{" "}
|
|
||||||
</Form>
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
</Formik>
|
|
||||||
}
|
|
||||||
|
|
||||||
{selectedTab == 'individual' &&
|
|
||||||
<Formik
|
|
||||||
initialValues={initialValues}
|
|
||||||
validationSchema={validationSchema.fields.individual}
|
|
||||||
onSubmit={jobFieldHandler}
|
|
||||||
>
|
|
||||||
{(props) => {
|
|
||||||
return (
|
|
||||||
<Form className="mb-4">
|
|
||||||
{/* Offer this job to individual input */}
|
|
||||||
<JobFieldInput
|
|
||||||
label="Offer this job to individual"
|
|
||||||
input={true}
|
|
||||||
inputName="individual"
|
|
||||||
value={props?.values.individual}
|
|
||||||
placeholder="Enter email of individual"
|
|
||||||
inputHandler={props?.handleChange}
|
|
||||||
btnText="Send Offer to Individual"
|
|
||||||
loader={loader?.jobFields?.individual}
|
|
||||||
errorHandler={errorHandler}
|
|
||||||
/>
|
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
|
||||||
{" "}
|
|
||||||
{props?.values.individual === "" && (
|
|
||||||
<span>{errMsg?.jobFields?.individual}</span>
|
|
||||||
)}
|
|
||||||
</p>{" "}
|
|
||||||
</Form>
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
</Formik>
|
|
||||||
}
|
|
||||||
|
|
||||||
{/* { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB != 0 && } */}
|
|
||||||
{selectedTab == 'group' &&
|
|
||||||
<Formik
|
|
||||||
initialValues={initialValues}
|
|
||||||
validationSchema={validationSchema.fields.group}
|
|
||||||
onSubmit={jobFieldHandler}
|
|
||||||
>
|
|
||||||
{(props) => {
|
|
||||||
return (
|
|
||||||
<Form className="mb-4">
|
|
||||||
{/* Offer this job to your group input */}
|
|
||||||
<JobFieldInput
|
|
||||||
label="Offer this job to your Group"
|
|
||||||
select={true}
|
|
||||||
inputName="group"
|
|
||||||
value={props?.values.group}
|
|
||||||
btnText="Send Order to Group"
|
|
||||||
optionText="Select Group"
|
|
||||||
loader={loader?.jobFields?.group}
|
|
||||||
errorHandler={errorHandler}
|
|
||||||
data={groupList}
|
|
||||||
/>
|
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
|
||||||
{" "}
|
|
||||||
{props?.values.group === "" && (
|
|
||||||
<span>{errMsg?.jobFields?.group}</span>
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
</Form>
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
</Formik>
|
|
||||||
}
|
|
||||||
|
|
||||||
{requestStatus.message &&
|
{requestStatus.message &&
|
||||||
<p className={`mt-4 w-full text-lg ${requestStatus.status ? 'text-emerald-600' : 'text-red-600'}`}>{requestStatus.message}</p>
|
<p className={`mt-4 w-full text-lg ${requestStatus.status ? 'text-emerald-600' : 'text-red-600'}`}>{requestStatus.message}</p>
|
||||||
}
|
}
|
||||||
@@ -471,7 +481,7 @@ const JobFieldInput = ({
|
|||||||
data,
|
data,
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div className="field w-full p-3 mb-2 bg-red-50 dark:bg-[#D85A5A] rounded-md">
|
<div className="field w-full h-full px-3 pt-5 pb-3 flex flex-col justify-between gap-4">
|
||||||
{select && (
|
{select && (
|
||||||
<>
|
<>
|
||||||
<div className={`input-com ${parentClass}`}>
|
<div className={`input-com ${parentClass}`}>
|
||||||
@@ -480,7 +490,7 @@ const JobFieldInput = ({
|
|||||||
>
|
>
|
||||||
{label && (
|
{label && (
|
||||||
<label
|
<label
|
||||||
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold block tracking-wide"
|
className="input-label border-2 w-full border-sky-700 py-4 px-2 text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold block tracking-wide"
|
||||||
htmlFor={inputName}
|
htmlFor={inputName}
|
||||||
>
|
>
|
||||||
{label}
|
{label}
|
||||||
@@ -552,13 +562,14 @@ const JobFieldInput = ({
|
|||||||
<InputCom
|
<InputCom
|
||||||
fieldClass="px-6"
|
fieldClass="px-6"
|
||||||
label={label}
|
label={label}
|
||||||
labelClass="tracking-wide"
|
labelClass="tracking-wide border-2 w-full border-sky-700 py-4 px-2"
|
||||||
type="email"
|
type="email"
|
||||||
name={inputName}
|
name={inputName}
|
||||||
placeholder={placeholder}
|
placeholder={placeholder}
|
||||||
value={value}
|
value={value}
|
||||||
inputHandler={inputHandler}
|
inputHandler={inputHandler}
|
||||||
inputBg="bg-white"
|
inputBg="bg-white"
|
||||||
|
parentClass={`${parentClass}`}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ function OfferJobPopout({ details, onClose, situation }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalCom action={onClose} situation={situation}>
|
<ModalCom action={onClose} situation={situation}>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="logout-modal-wrapper w-[90%] md:w-[768px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
Start Task
|
Start Task
|
||||||
|
|||||||
@@ -5,6 +5,16 @@ class usersService {
|
|||||||
console.log("WRB Service Entry");
|
console.log("WRB Service Entry");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MyPageIntro(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
...reqData
|
||||||
|
};
|
||||||
|
return this.postAuxEnd("/mypageintro", postData);
|
||||||
|
}
|
||||||
|
|
||||||
CreateUser(reqData) {
|
CreateUser(reqData) {
|
||||||
localStorage.setItem("session_token", ``);
|
localStorage.setItem("session_token", ``);
|
||||||
return this.postAuxEnd("/createuser", reqData);
|
return this.postAuxEnd("/createuser", reqData);
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import YourPage from "../components/YourPage";
|
||||||
|
|
||||||
|
export default function YourPages() {
|
||||||
|
return <YourPage />;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user