Merge branch 'master' of https://gitlab.chiefsoft.net/WrenchBoard/Users-Wrench into Move-AddJob-to-Popup

This commit is contained in:
2023-06-17 06:21:49 +01:00
15 changed files with 240 additions and 150 deletions
@@ -117,7 +117,7 @@ export default function FamilyManageTabs({
return ( return (
<div <div
className={`update-table w-full bg-white dark:bg-dark-white overflow-y-auto rounded-2xl section-shadow min-h-[520px] max-h-[600px] ${ className={`w-full bg-white dark:bg-dark-white overflow-y-auto rounded-2xl section-shadow min-h-[520px] max-h-[600px] ${
className || "" className || ""
}`} }`}
> >
+35 -31
View File
@@ -5,16 +5,12 @@ import { handlePagingFunc } from "../../Pagination/HandlePagination";
import PaginatedList from "../../Pagination/PaginatedList"; import PaginatedList from "../../Pagination/PaginatedList";
import LoadingSpinner from "../../Spinners/LoadingSpinner"; import LoadingSpinner from "../../Spinners/LoadingSpinner";
import Icons from "../../Helpers/Icons"; import Icons from "../../Helpers/Icons";
import { PriceFormatter } from "../../Helpers/PriceFormatter";
export default function FamilyTasks({ familyData, className, loader }) { export default function FamilyTasks({ familyData, className, loader }) {
const filterCategories = ["All Categories", "Explore", "Featured"];
const [selectedCategory, setCategory] = useState(filterCategories[0]);
let navigate = useNavigate(); let navigate = useNavigate();
let { pathname } = useLocation(); let { pathname } = useLocation();
let data = ["1", "2", "3", "4", "5", "6"]; // to be replaced later by result from API CALL
const [currentPage, setCurrentPage] = useState(0); const [currentPage, setCurrentPage] = useState(0);
const indexOfFirstItem = Number(currentPage); const indexOfFirstItem = Number(currentPage);
const indexOfLastItem = const indexOfLastItem =
@@ -24,10 +20,7 @@ export default function FamilyTasks({ familyData, className, loader }) {
indexOfLastItem indexOfLastItem
); );
const handlePagination = (e) => handlePagingFunc(e, setCurrentPage);
const handlePagination = (e) => {
handlePagingFunc(e, setCurrentPage);
};
return ( return (
<div <div
@@ -52,8 +45,14 @@ export default function FamilyTasks({ familyData, className, loader }) {
familyData?.result_list && familyData?.result_list &&
familyData.result_list.length > 0 && familyData.result_list.length > 0 &&
currentTask.map((value, index) => { currentTask.map((value, index) => {
// find due date // find due date
const dueDate = value?.delivery_date.split(" ")[0] const dueDate = value?.delivery_date.split(" ")[0];
// the price
let thePrice = PriceFormatter(
value?.price * 0.01,
value?.currency_code,
value?.currency
);
return ( return (
<tr <tr
key={index} key={index}
@@ -73,37 +72,42 @@ export default function FamilyTasks({ familyData, className, loader }) {
{value.title} {value.title}
</h1> </h1>
<div className="flex gap-4 items-center"> <div className="flex gap-4 items-center">
<span className="text-sm text-thin-light-gray"> <span className="text-sm text-thin-light-gray">
Price:{" "} Price:{" "}
<span className="text-purple"> <span className="text-purple">
{value.price * 0.01} {thePrice}
</span>
</span> </span>
</span> <span className="text-sm text-thin-light-gray">
<span className="text-sm text-thin-light-gray"> Duration:{" "}
Duration:{" "} <span className="text-purple">
<span className="text-purple"> {" "}
{" "} {value.timeline_days} day(s)
{value.timeline_days} day(s) </span>
</span> </span>
</span> <span className="text-sm text-thin-light-gray">
<span className="text-sm text-thin-light-gray"> Due Date:{" "}
Due Date:{" "} <span className="text-purple">
<span className="text-purple"> {" "}
{" "} {dueDate}
{dueDate} </span>
</span> </span>
</span>
</div> </div>
</div> </div>
</div> </div>
</td> </td>
<td className="text-right py-4 px-2"> <td className="text-right py-4 px-2">
<button <button
type="button" type="button"
onClick={() => { onClick={() => {
navigate("/manage-active-job", { navigate("/manage-active-job", {
state: { ...value, pathname }, state: {
...value,
pathname,
dueDate,
thePrice,
},
}); });
}} }}
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white" className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
@@ -112,7 +116,7 @@ export default function FamilyTasks({ familyData, className, loader }) {
</button> </button>
</td> </td>
</tr> </tr>
) );
})} })}
</> </>
} }
+2 -2
View File
@@ -10,7 +10,7 @@ export default function Accordion({ datas }) {
<> <>
<div className="accordion-item overflow-hidden relative z-[1]"> <div className="accordion-item overflow-hidden relative z-[1]">
<div <div
className="accordion-title-bar flex items-center space-x-3 py-5 border-b border-light-purple dark:border-[#5356fb29] " className="accordion-title-bar flex items-center space-x-3 py-5 border-b border-light-purple dark:border-[#5356fb29] cursor-pointer"
onClick={accordionHandler} onClick={accordionHandler}
> >
<div className="accordion-title-icon relative"> <div className="accordion-title-icon relative">
@@ -36,7 +36,7 @@ export default function Accordion({ datas }) {
<div className="w-[3px] h-auto bg-purple rounded-[28px]"></div> <div className="w-[3px] h-auto bg-purple rounded-[28px]"></div>
<div className="flex-1"> <div className="flex-1">
<p className="text-base text-thin-light-gray tracking-wide"> <p className="text-base text-thin-light-gray tracking-wide">
{datas.content} {datas.msg}
</p> </p>
</div> </div>
</div> </div>
+37 -19
View File
@@ -1,10 +1,17 @@
import { useMemo, useState } from "react"; import { useMemo, useState } from "react";
import { toast } from "react-toastify";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import { useDispatch } from "react-redux";
import { tableReload } from "../../store/TableReloads";
const CouponPopup = ({ popUpHandler, data }) => { const CouponPopup = ({ popUpHandler, data }) => {
const [loader, setLoader] = useState(false); const [loader, setLoader] = useState(false);
const apiCall = useMemo(() => new usersService(), []); const apiCall = useMemo(() => new usersService(), []);
const [statusMsg, setStatusMsg] = useState({
success: "",
error: "",
});
const dispatch = useDispatch();
const redeemCouponHandler = async () => { const redeemCouponHandler = async () => {
setLoader(true); setLoader(true);
@@ -14,28 +21,34 @@ const CouponPopup = ({ popUpHandler, data }) => {
const reqData = { code_id: Number(coupon_id), code }; const reqData = { code_id: Number(coupon_id), code };
const res = await apiCall.getCouponRedeem(reqData); const res = await apiCall.getCouponRedeem(reqData);
if (res.statusText === "OK") {
toast.success("Great news! Your coupon has been redeemed.", {
autoClose: 3000,
hideProgressBar: true,
});
}
if (res.data?.internal_return < 0)
setStatusMsg({ error: "An error occurred" });
else setStatusMsg({ success: res.data?.status_text });
dispatch(tableReload({ type: "COUPONTABLE" }));
setTimeout(() => { setTimeout(() => {
popUpHandler(); popUpHandler();
setLoader(false); setLoader(false);
}, 3000); }, 10000);
throw new Response(res);
} catch (error) { } catch (error) {
// error &&
// toast.warn("An error occurred while processing your coupon.", {
// autoClose: 3000,
// hideProgressBar: true,
// });
setLoader(false); setLoader(false);
console.log(error); if (error?.status !== 200)
return; setStatusMsg({
// throw new Error(error); error: {
status: true,
msg:
error?.statusText !== ""
? error?.statusText
: "An error occurred",
},
});
throw new Error(error);
} finally {
setStatusMsg({
success: "",
error: "",
});
} }
}; };
@@ -77,9 +90,8 @@ const CouponPopup = ({ popUpHandler, data }) => {
Amount: Amount:
</label> </label>
</div> </div>
<div className=" flex-[0.7] max-w-[150px]">{`${data?.amount} Naira`}</div> <div className=" flex-[0.7] max-w-[150px]">{data?.thePrice}</div>
</div> </div>
<div className="signin-area w-full"> <div className="signin-area w-full">
<div className="flex justify-end"> <div className="flex justify-end">
<button <button
@@ -96,6 +108,12 @@ const CouponPopup = ({ popUpHandler, data }) => {
)} )}
</button> </button>
</div> </div>
{statusMsg.success && (
<p className="text-sm text-green-500 italic">{statusMsg.success}</p>
)}
{statusMsg.error && (
<p className="text-sm text-red-500 italic">{statusMsg.error}</p>
)}
</div> </div>
</form> </form>
<div className="signin-area w-full px-5 py-4"> <div className="signin-area w-full px-5 py-4">
+11 -4
View File
@@ -4,6 +4,7 @@ import { handlePagingFunc } from "../Pagination/HandlePagination";
import ModalCom from "../Helpers/ModalCom"; import ModalCom from "../Helpers/ModalCom";
import CouponPopup from "./CouponPopup"; import CouponPopup from "./CouponPopup";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { PriceFormatter } from "../Helpers/PriceFormatter";
function CouponTable({ coupon }) { function CouponTable({ coupon }) {
const [currentPage, setCurrentPage] = useState(0); const [currentPage, setCurrentPage] = useState(0);
@@ -38,12 +39,18 @@ function CouponTable({ coupon }) {
</thead> </thead>
{coupon.data.length ? ( {coupon.data.length ? (
<tbody> <tbody>
{currentCoupon.map((item, index) => ( {currentCoupon.map((item, index) => {
let thePrice = PriceFormatter(
item?.amount * 0.01,
item?.currency_code,
item?.currency
);
return(
<tr key={index} className="text-slate-500"> <tr key={index} className="text-slate-500">
<td className="p-2 cursor-default"> <td className="p-2 cursor-default">
{item.added} <br /> {item.code} {item.added} <br /> {item.code}
</td> </td>
<td className="p-2 text-center cursor-default">{`${item.amount} Naira`}</td> <td className="p-2 text-center cursor-default">{thePrice}</td>
<td className="p-2 h-20 flex items-center justify-end"> <td className="p-2 h-20 flex items-center justify-end">
<button <button
type="button" type="button"
@@ -51,7 +58,7 @@ function CouponTable({ coupon }) {
onClick={() => { onClick={() => {
setCouponPopup((prev) => ({ setCouponPopup((prev) => ({
state: !prev.state, state: !prev.state,
data: item, data: {...item, thePrice},
})); }));
}} }}
> >
@@ -59,7 +66,7 @@ function CouponTable({ coupon }) {
</button> </button>
</td> </td>
</tr> </tr>
))} )})}
</tbody> </tbody>
) : coupon.error ? ( ) : coupon.error ? (
<tbody> <tbody>
+8 -6
View File
@@ -1,11 +1,13 @@
import React, { useEffect, useState } from "react"; import React, { useCallback, useEffect, useMemo, useState } from "react";
import Layout from "../Partials/Layout"; import Layout from "../Partials/Layout";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import CouponTable from "./CouponTable"; import CouponTable from "./CouponTable";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import { useSelector } from "react-redux";
export default function MyCoupons() { export default function MyCoupons() {
const apiCall = new usersService(); const apiCall = useMemo(() => new usersService(), []);
const {couponTable} = useSelector(state => state.tableReload)
let [couponHistory, setCouponHistory] = useState({ let [couponHistory, setCouponHistory] = useState({
// FOR COUPON HISTORY // FOR COUPON HISTORY
loading: true, loading: true,
@@ -14,7 +16,7 @@ export default function MyCoupons() {
}); });
//FUNCTION TO GET COUPON HISTORY //FUNCTION TO GET COUPON HISTORY
const getCouponHistory = () => { const getCouponHistory = useCallback(() => {
apiCall apiCall
.getCouponPending() .getCouponPending()
.then((res) => { .then((res) => {
@@ -32,11 +34,11 @@ export default function MyCoupons() {
.catch((error) => { .catch((error) => {
setCouponHistory((prev) => ({ ...prev, loading: false, error: true })); setCouponHistory((prev) => ({ ...prev, loading: false, error: true }));
}); });
}; }, [apiCall]);
useEffect(() => { useEffect(() => {
getCouponHistory(); getCouponHistory();
}, []); }, [couponTable]);
return ( return (
<> <>
@@ -59,7 +61,7 @@ export default function MyCoupons() {
<LoadingSpinner size="16" color="sky-blue" /> <LoadingSpinner size="16" color="sky-blue" />
</div> </div>
) : ( ) : (
<CouponTable coupon={couponHistory} /> <CouponTable coupon={couponHistory} />
)} )}
</div> </div>
</div> </div>
+15 -10
View File
@@ -11,6 +11,7 @@ import usersService from "../../services/UsersService";
import { handlePagingFunc } from "../Pagination/HandlePagination"; import { handlePagingFunc } from "../Pagination/HandlePagination";
import PaginatedList from "../Pagination/PaginatedList"; import PaginatedList from "../Pagination/PaginatedList";
import EditJobPopOut from "../jobPopout/EditJobPopout"; import EditJobPopOut from "../jobPopout/EditJobPopout";
import { PriceFormatter } from "../Helpers/PriceFormatter";
export default function MyJobTable({ MyJobList, reloadJobList, className }) { export default function MyJobTable({ MyJobList, reloadJobList, className }) {
const [myCountry, setCountries] = useState(""); const [myCountry, setCountries] = useState("");
@@ -101,9 +102,15 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
{selectedCategory === "All Categories" ? ( {selectedCategory === "All Categories" ? (
<> <>
{MyJobList && {MyJobList &&
MyJobList?.data?.result_list && MyJobList?.data?.result_list &&
MyJobList.data?.result_list.length > 0 ? MyJobList.data?.result_list.length > 0 ? (
currentJobList.map((value, index) => ( currentJobList.map((value, index) => {
let thePrice = PriceFormatter(
value?.price * 0.01,
value?.currency_code,
value?.currency
);
return(
<tr <tr
key={index} key={index}
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"
@@ -126,7 +133,7 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
<span className="text-sm text-thin-light-gray"> <span className="text-sm text-thin-light-gray">
Price:{" "} Price:{" "}
<span className="text-purple"> <span className="text-purple">
{value.price * 0.01} {thePrice}
</span> </span>
</span> </span>
<span className="text-sm text-thin-light-gray"> <span className="text-sm text-thin-light-gray">
@@ -181,14 +188,12 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
</button> </button>
</td> </td>
</tr> </tr>
)) )})
: ) : (
<tr className="font-bold text-xl text-dark-gray dark:text-white whitespace-nowrap"> <tr className="font-bold text-xl text-dark-gray dark:text-white whitespace-nowrap">
<td className="p-2"> <td className="p-2">No Jobs Avaliable!</td>
No Jobs Avaliable!
</td>
</tr> </tr>
} )}
</> </>
) : selectedCategory === "Explore" ? ( ) : selectedCategory === "Explore" ? (
<></> <></>
+1 -1
View File
@@ -40,4 +40,4 @@ export default function MyJobs(props) {
{/* End of Add Job List Popout */} {/* End of Add Job List Popout */}
</Layout> </Layout>
); );
} }
@@ -1,66 +1,85 @@
import React, {useState} from 'react' import React, { useState } from "react";
import PaginatedList from '../../Pagination/PaginatedList' import PaginatedList from "../../Pagination/PaginatedList";
import { handlePagingFunc } from '../../Pagination/HandlePagination'; import { handlePagingFunc } from "../../Pagination/HandlePagination";
import { PriceFormatter } from "../../Helpers/PriceFormatter";
function CouponTable({coupon}) { function CouponTable({ coupon }) {
const [currentPage, setCurrentPage] = useState(0);
const indexOfFirstItem = Number(currentPage);
const indexOfLastItem =
Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE);
const currentCoupon = coupon?.data?.slice(indexOfFirstItem, indexOfLastItem);
const [currentPage, setCurrentPage] = useState(0); const handlePagination = (e) => {
const indexOfFirstItem = Number(currentPage); handlePagingFunc(e, setCurrentPage);
const indexOfLastItem = Number(indexOfFirstItem)+Number(process.env.REACT_APP_ITEM_PER_PAGE); };
const currentCoupon = coupon?.data?.slice(indexOfFirstItem, indexOfLastItem);
const handlePagination = (e) => {
handlePagingFunc(e,setCurrentPage)
}
return ( return (
<div className='flex flex-col justify-between h-full'> <div className="flex flex-col justify-between h-full">
<table className="wallet-activity w-full table-auto border-collapse text-left"> <table className="wallet-activity w-full table-auto border-collapse text-left">
<thead className='border-b-2'> <thead className="border-b-2">
<tr className='text-slate-600'> <tr className="text-slate-600">
<th className="p-2">Date</th> <th className="p-2">Date</th>
<th className="p-2">Description</th> <th className="p-2">Description</th>
<th className="p-2">Amount</th> <th className="p-2">Amount</th>
<th className="p-2">Active</th> <th className="p-2">Active</th>
</tr> </tr>
</thead> </thead>
{coupon.data.length ? {coupon.data.length ? (
( <tbody>
<tbody> {currentCoupon.map((item, index) => {
{currentCoupon.map((item, index) => ( let thePrice = PriceFormatter(
<tr key={index} className='text-slate-500'> item?.price * 0.01,
<td className="p-2">{item.added}</td> item?.currency_code,
<td className="p-2">{item.code}</td> item?.currency
<td className="p-2">{item.amount}</td> );
<td className="p-2">{item.status}</td> return (
<tr key={index} className="text-slate-500">
<td className="p-2">{item.added}</td>
<td className="p-2">{item.code}</td>
<td className="p-2">{item.amount}</td>
<td className="p-2">{item.status}</td>
</tr>
);
})}
</tbody>
) : coupon.error ? (
<tbody>
<tr className="text-slate-500">
<td className="p-2" colSpan={4}>
Opps! an error occurred. Please try again!
</td>
</tr> </tr>
))} </tbody>
</tbody> ) : (
) <tbody>
: <tr className="text-slate-500">
coupon.error ? <td className="p-2" colSpan={4}>
( No Purchase History Found!
<tbody> </td>
<tr className='text-slate-500'>
<td className="p-2" colSpan={4}>Opps! an error occurred. Please try again!</td>
</tr> </tr>
</tbody> </tbody>
) )}
: </table>
<tbody>
<tr className='text-slate-500'>
<td className="p-2" colSpan={4}>No Purchase History Found!</td>
</tr>
</tbody>
}
</table>
{/* PAGINATION BUTTON */} {/* PAGINATION BUTTON */}
<PaginatedList onClick={handlePagination} prev={currentPage == 0 ? true : false} next={currentPage+Number(process.env.REACT_APP_ITEM_PER_PAGE) >= coupon?.data?.length ? true : false} data={coupon?.data} start={indexOfFirstItem} stop={indexOfLastItem} /> <PaginatedList
{/* END OF PAGINATION BUTTON */} onClick={handlePagination}
prev={currentPage == 0 ? true : false}
next={
currentPage + Number(process.env.REACT_APP_ITEM_PER_PAGE) >=
coupon?.data?.length
? true
: false
}
data={coupon?.data}
start={indexOfFirstItem}
stop={indexOfLastItem}
/>
{/* END OF PAGINATION BUTTON */}
</div> </div>
) );
} }
export default CouponTable export default CouponTable;
+9 -5
View File
@@ -1,14 +1,18 @@
import React from "react"; import React from "react";
import Accordion from "../../Helpers/Accordion"; import Accordion from "../../Helpers/Accordion";
import LoadingSpinner from "../../Spinners/LoadingSpinner";
export default function FaqTab({ datas = [] }) { export default function FaqTab({ datas }) {
return ( return (
<div className="faq-tab w-full"> <div className="faq-tab w-full">
<div className="accordion-items w-full"> <div className="accordion-items w-full">
{datas && {datas.loading ?
datas.length > 0 && <LoadingSpinner color='sky-blue' size={16} />
datas.map((value) => ( :
<Accordion key={value.id + Math.random()} datas={value} /> datas &&
datas?.data?.length > 0 &&
datas.data.map((value, index) => (
<Accordion key={index + Math.random()} datas={value} />
))} ))}
</div> </div>
</div> </div>
+3 -5
View File
@@ -1,7 +1,7 @@
import React, { useRef, useState } from "react"; import React, { useRef, useState } from "react";
import cover from "../../assets/images/profile-info-cover.png"; import cover from "../../assets/images/profile-info-cover.png";
import profile from "../../assets/images/profile-info-profile.png"; import profile from "../../assets/images/profile-info-profile.png";
import faq from "../../data/faq.json";
import Icons from "../Helpers/Icons"; import Icons from "../Helpers/Icons";
import Layout from "../Partials/Layout"; import Layout from "../Partials/Layout";
import ChangePasswordTab from "./Tabs/ChangePasswordTab"; import ChangePasswordTab from "./Tabs/ChangePasswordTab";
@@ -12,7 +12,7 @@ import PaymentMathodsTab from "./Tabs/PaymentMathodsTab";
import PersonalInfoTab from "./Tabs/PersonalInfoTab"; import PersonalInfoTab from "./Tabs/PersonalInfoTab";
import TermsConditionTab from "./Tabs/TermsConditionTab"; import TermsConditionTab from "./Tabs/TermsConditionTab";
export default function Settings() { export default function Settings({faq}) {
const tabs = [ const tabs = [
{ {
id: 1, id: 1,
@@ -83,8 +83,6 @@ export default function Settings() {
} }
}; };
// fab tab
const faqData = faq.datas;
return ( return (
<> <>
<Layout> <Layout>
@@ -259,7 +257,7 @@ export default function Settings() {
)} )}
{tab === "login_activity" && <LoginActivityTab />} {tab === "login_activity" && <LoginActivityTab />}
{tab === "password" && <ChangePasswordTab />} {tab === "password" && <ChangePasswordTab />}
{tab === "faq" && <FaqTab datas={faqData} />} {tab === "faq" && <FaqTab datas={faq} />}
{tab === "terms" && <TermsConditionTab />} {tab === "terms" && <TermsConditionTab />}
</div> </div>
</div> </div>
+11 -1
View File
@@ -687,9 +687,19 @@ class usersService {
action: 14015, action: 14015,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/activejobstatus ", postData); return this.postAuxEnd("/activejobstatus", postData);
} }
// END POINT FOR OWNER JOB ACTION
getFaq() {
var postData = {
uid: localStorage.getItem("uid"),
// member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
};
return this.postAuxEnd("/faq", postData);
}
/* /*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)
+16 -12
View File
@@ -4,7 +4,8 @@ const initialState = {
jobListTable: false, jobListTable: false,
pendingListTable: false, pendingListTable: false,
myTaskTable: false, myTaskTable: false,
othersInterestedTable: false othersInterestedTable: false,
couponTable: false
}; };
export const tableReloadSlice = createSlice({ export const tableReloadSlice = createSlice({
@@ -12,21 +13,24 @@ export const tableReloadSlice = createSlice({
initialState, initialState,
reducers: { reducers: {
tableReload: (state, action) => { tableReload: (state, action) => {
switch(action.payload.type){ switch (action.payload.type) {
case 'JOBTABLE': case "JOBTABLE":
state.jobListTable = !state.jobListTable; state.jobListTable = !state.jobListTable;
return return;
case 'PENDINGTABLE' : case "PENDINGTABLE":
state.pendingListTable = !state.pendingListTable; state.pendingListTable = !state.pendingListTable;
return return;
case 'MYTASKTABLE' : case "MYTASKTABLE":
state.myTaskTable = !state.myTaskTable; state.myTaskTable = !state.myTaskTable;
return return;
case 'OTHERSINTERESTEDTABLE' : case "OTHERSINTERESTEDTABLE":
state.othersInterestedTable = !state.othersInterestedTable; state.othersInterestedTable = !state.othersInterestedTable;
return return;
case "COUPONTABLE":
state.couponTable = !state.couponTable;
return;
default: default:
return state return state;
} }
}, },
}, },
@@ -34,4 +38,4 @@ export const tableReloadSlice = createSlice({
export const { tableReload } = tableReloadSlice.actions; export const { tableReload } = tableReloadSlice.actions;
export default tableReloadSlice.reducer; export default tableReloadSlice.reducer;
+1 -1
View File
@@ -12,4 +12,4 @@ export default function MyJobsPage() {
/> />
</> </>
); );
} }
+21 -2
View File
@@ -1,10 +1,29 @@
import React from "react"; import React,{useState, useEffect} from "react";
import Settings from "../components/Settings"; import Settings from "../components/Settings";
import usersService from "../services/UsersService";
export default function SettingsPage() { export default function SettingsPage() {
const apiCall = new usersService()
let [faq, setFaq] = useState({loading:true, data:[]}) // STATE TO HOLD FAQ DATA
//FUNCTION TO GET FAQ
const getFaq = () => {
apiCall.getFaq().then(res => {
setFaq({loading:false, data:res.data.result_list})
}).catch(err => {
setFaq({loading:false, data:[]})
console.log('Error', err)
})
}
useEffect(()=>{
getFaq()
},[])
return ( return (
<> <>
<Settings /> <Settings faq={faq} />
</> </>
); );
} }