diff --git a/src/assets/images/payment-cards/american-express-card.svg b/src/assets/images/payment-cards/american-express-card.svg
new file mode 100644
index 0000000..bbb0364
--- /dev/null
+++ b/src/assets/images/payment-cards/american-express-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/payment-cards/discover-card.svg b/src/assets/images/payment-cards/discover-card.svg
new file mode 100644
index 0000000..e44ebb4
--- /dev/null
+++ b/src/assets/images/payment-cards/discover-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/payment-cards/master-card.svg b/src/assets/images/payment-cards/master-card.svg
new file mode 100644
index 0000000..730cc7c
--- /dev/null
+++ b/src/assets/images/payment-cards/master-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/payment-cards/visa-card.svg b/src/assets/images/payment-cards/visa-card.svg
new file mode 100644
index 0000000..4815ad1
--- /dev/null
+++ b/src/assets/images/payment-cards/visa-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/settings/settings.svg b/src/assets/images/settings/settings.svg
new file mode 100644
index 0000000..c608904
--- /dev/null
+++ b/src/assets/images/settings/settings.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/Blogs/index.jsx b/src/components/Blogs/index.jsx
index 7656650..7d10246 100644
--- a/src/components/Blogs/index.jsx
+++ b/src/components/Blogs/index.jsx
@@ -31,7 +31,7 @@ export default function BlogItem(props) {
- Blog Items Details
+ Blog Items Details need implenet
diff --git a/src/components/MyActiveJobs/ActiveJobMessage.jsx b/src/components/MyActiveJobs/ActiveJobMessage.jsx
index 8bc4abd..9feb091 100644
--- a/src/components/MyActiveJobs/ActiveJobMessage.jsx
+++ b/src/components/MyActiveJobs/ActiveJobMessage.jsx
@@ -32,7 +32,7 @@ export default function ActiveJobMessage({ activeJobMesList }) {
{currentActiveJobMesList.map((item, index) => (
-
+
{item.msg_date} {item.msg_firstname}
diff --git a/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx b/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx
index 9081c8b..5c954d5 100644
--- a/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/CurrentJobAction.jsx
@@ -4,15 +4,15 @@ function CurrentJobAction() {
return (
-
+
-
+
-
+
Waiting for the completion message from the client before you can approve.
-
+
{/*
*/}
diff --git a/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx b/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx
index d68c1c6..78a8759 100644
--- a/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/CurrentTaskAction.jsx
@@ -62,14 +62,14 @@ function CurrentTaskAction({jobDetails}) {
return (
-
+
-
-
+
+
I completed this task and ready for review and acceptance.
-
+
{/*
*/}
{/*
*/}
diff --git a/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx b/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
index f943d7c..972c048 100644
--- a/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
@@ -107,19 +107,18 @@ function PastDueJobAction({jobDetails}) {
-
+
-
+
Time allocated has passed
-
- {/*
*/}
+
-
+
Cancel or Extend Timeline
diff --git a/src/components/MyActiveJobs/JobActions/PastDueTaskAction.jsx b/src/components/MyActiveJobs/JobActions/PastDueTaskAction.jsx
index d742b73..5bd83f3 100644
--- a/src/components/MyActiveJobs/JobActions/PastDueTaskAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/PastDueTaskAction.jsx
@@ -8,11 +8,11 @@ function PastDueTaskAction() {
-
+
-
+
You have missed the allocated time
-
+
{/*
*/}
diff --git a/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx b/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx
index f12fe39..6f808ff 100644
--- a/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/ReviewJobAction.jsx
@@ -96,11 +96,11 @@ function ReviewJobAction({jobDetails}) {
-
+
-
+
This Job is Ready for your review
-
+
{/*
*/}
diff --git a/src/components/MyActiveJobs/JobActions/ReviewTaskAction.jsx b/src/components/MyActiveJobs/JobActions/ReviewTaskAction.jsx
index 9163dcd..0e90332 100644
--- a/src/components/MyActiveJobs/JobActions/ReviewTaskAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/ReviewTaskAction.jsx
@@ -2,7 +2,7 @@ import React from 'react'
function ReviewTaskAction() {
return (
-
+
Waiting for the completion message from the client before you can approve. Worker True & Review Job
diff --git a/src/components/Settings/Tabs/CardList.jsx b/src/components/Settings/Tabs/CardList.jsx
new file mode 100644
index 0000000..7d02eaa
--- /dev/null
+++ b/src/components/Settings/Tabs/CardList.jsx
@@ -0,0 +1,112 @@
+import React, {useEffect, useState} from 'react'
+import method1 from "../../../assets/images/payment-cards/discover-card.svg";
+import LoadingSpinner from '../../Spinners/LoadingSpinner';
+import localImgLoad from '../../../lib/localImgLoad';
+
+import usersService from "../../../services/UsersService";
+import { handlePagingFunc } from '../../Pagination';
+import PaginatedList from '../../Pagination/PaginatedList';
+
+import DeleteCardPopout from './DeleteCardPopout';
+
+function CardList() {
+ const api = new usersService();
+
+ const [reloadCardList, setReloadCardList] = useState(false) // STATE TO DETERMINE WHEN CARD LIST RELOADS. EG: WHEN USER DELETES A CARD
+
+ const [cardList, setCardList] = useState({loading: true, data: []})
+
+ const [deleteCardModal, setDeleteCardModal] = useState({show: false, data: {}}) // STATE TO HOLD WHEN DELETE MODAL POPS UP
+ const handleDeleteCardModal = () => {
+ setDeleteCardModal(prev => ({...prev, show:!prev.show}))
+ }
+
+ const [currentPage, setCurrentPage] = useState(0);
+ const indexOfFirstItem = Number(currentPage);
+ const indexOfLastItem =
+ Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE);
+ const currentCardList = cardList?.data?.slice(indexOfFirstItem, indexOfLastItem);
+
+ const handlePagination = (e) => {
+ handlePagingFunc(e, setCurrentPage);
+ };
+
+ useEffect(()=>{
+ setCardList({loading: true, data: []})
+ api.payListCard().then(res=>{
+ setCardList({loading: false, data:res.data?.result_list})
+ }).catch(err => {
+ setCardList({loading: false, data:[]})
+ console.log('ERROR', err)
+ })
+ },[reloadCardList])
+ return (
+
+
+
+ {/* PAGINATION BUTTON */}
+
=
+ cardList?.data?.length
+ ? true
+ : false
+ }
+ data={cardList?.data}
+ start={indexOfFirstItem}
+ stop={indexOfLastItem}
+ />
+ {/* END OF PAGINATION BUTTON */}
+
+ {deleteCardModal.show &&
+
+ }
+
+ )
+}
+
+export default CardList
\ No newline at end of file
diff --git a/src/components/Settings/Tabs/ChangePasswordTab.jsx b/src/components/Settings/Tabs/ChangePasswordTab.jsx
index b3e5236..a4c5eaf 100644
--- a/src/components/Settings/Tabs/ChangePasswordTab.jsx
+++ b/src/components/Settings/Tabs/ChangePasswordTab.jsx
@@ -3,11 +3,39 @@
import React, { useState } from "react";
import Icons from "../../Helpers/Icons";
import PasswordSvg from "../PasswordSvg";
+import LoadingSpinner from "../../Spinners/LoadingSpinner";
+import usersService from "../../../services/UsersService";
+import { useNavigate } from "react-router-dom";
export default function ChangePasswordTab() {
+ const apiUrl = new usersService()
+ const navigate = useNavigate()
+
const [oldPass, setOldPass] = useState("hide-password");
const [newPass, setNewPass] = useState("hide-password");
const [confirmPass, setConfirmPass] = useState("hide-password");
+
+ const [requestStatus, setRequestStatus] = useState({loading: false, status: false, message: ''})
+
+ const [inputEmpty, setInputEmpty] = useState(false)
+ let [inputs, setInputs] = useState({
+ old_pwd: '',
+ new_pwd: '',
+ confirm_new_pwd: ''
+ })
+
+ const handleInputChange = ({target:{name, value}}) => { // FUNCTION TO HANDLE WHEN AN INPUT CHANGES
+ setInputs(prev => ({...prev, [name]:value}))
+ }
+
+ const handleCancel = () => { // FUNCTION TO CLEAR ALL TYPED INPUTS
+ setInputs({
+ old_pwd: '',
+ new_pwd: '',
+ confirm_new_pwd: ''
+ })
+ }
+
const showPassword = (value) => {
const password = document.getElementById(`${value}`);
if (value && value === "old_password") {
@@ -38,16 +66,61 @@ export default function ChangePasswordTab() {
}
}
};
+
+ const handlePwdUpdate = () => {
+ setInputEmpty(false) // SETS THE STATE OF ANY INPUT IS EMPTY TO FALSE
+ if(!inputs.old_pwd || !inputs.new_pwd || !inputs.confirm_new_pwd){ // CHECKS IF ANY INPUT FIELD IS EMPTY AND SETS INPUT EMPTY TO TRUE
+ setInputEmpty(true)
+ return setTimeout(()=>{setInputEmpty(false)},3000)
+ }
+
+ if(inputs.new_pwd != inputs.confirm_new_pwd){ // CHECKS IF PASSWORD MATCHES CONFIRM PASSWORD
+ setRequestStatus({loading: false, status: false, message: 'new password must match confirm password'})
+ return setTimeout(()=>{setRequestStatus({loading: false, status: false, message: ''})},3000)
+ }
+
+ if(/^[a-zA-Z0-9]*$/.test(inputs.new_pwd) == false){ // CHECKS IF PASSWORD IS ALPHANUMERIC
+ setRequestStatus({loading: false, status: false, message: 'password must be alphanumeric'})
+ return setTimeout(()=>{setRequestStatus({loading: false, status: false, message: ''})},3000)
+ }
+
+ if(inputs.new_pwd.length < 6){ // CHECKS IF PASSWORD IS UPTO SIX CHARACTERS
+ setRequestStatus({loading: false, status: false, message: 'password must be upto six characters'})
+ return setTimeout(()=>{setRequestStatus({loading: false, status: false, message: ''})},3000)
+ }
+
+
+ let reqData = { // REQUEST PAYLOAD
+ current_pass: inputs.old_pwd,
+ new_pass: inputs.new_pwd
+ }
+
+
+ setRequestStatus({loading: true, status: false, message: ''})
+
+ apiUrl.profilePassChange(reqData).then(res => {
+ if(res.status != 200 || res.data.internal_return < 0){
+ setRequestStatus({loading: false, status: false, message: 'unable to complete request'})
+ return
+ }
+ setRequestStatus({loading: false, status: true, message: 'password update was successful'})
+ setTimeout(()=>{navigate('/settings', {replace: true})}, 5000)
+ }).catch(err => {
+ setRequestStatus({loading: false, status: false, message: 'unable to complete request'})
+ }).finally(()=>{
+ setTimeout(()=>{setRequestStatus({loading: false, status: false, message: ''})},4000)
+ })
+ }
return (
-
+
- Old Password
+ Old Password {(inputEmpty && !inputs.old_pwd) && 'required'}
@@ -58,6 +131,10 @@ export default function ChangePasswordTab() {
className="input-field placeholder:text-base text-bese px-12 text-dark-gray dark:text-white w-full h-full bg-[#FAFAFA] dark:bg-[#11131F] focus:ring-0 focus:outline-none"
type="password"
id="old_password"
+ value={inputs.old_pwd}
+ name='old_pwd'
+ onChange={handleInputChange}
+ autoComplete='false'
/>
- New Password
+ New Password
{(inputEmpty && !inputs.new_pwd) && 'required'}
@@ -83,6 +160,10 @@ export default function ChangePasswordTab() {
className="input-field placeholder:text-base text-bese px-12 text-dark-gray dark:text-white w-full h-full bg-[#FAFAFA] dark:bg-[#11131F] focus:ring-0 focus:outline-none"
type="password"
id="new_password"
+ value={inputs.new_pwd}
+ name='new_pwd'
+ onChange={handleInputChange}
+ autoComplete='false'
/>
- Confirm Password
+ Confirm Password
{(inputEmpty && !inputs.confirm_new_pwd) && 'required'}
@@ -108,6 +189,10 @@ export default function ChangePasswordTab() {
className="input-field placeholder:text-base text-bese px-12 text-dark-gray dark:text-white w-full h-full bg-[#FAFAFA] dark:bg-[#11131F] focus:ring-0 focus:outline-none"
type="password"
id="confirm_password"
+ value={inputs.confirm_new_pwd}
+ name='confirm_new_pwd'
+ onChange={handleInputChange}
+ autoComplete='false'
/>
Cancel
-
-
- Change Password
-
-
+ {requestStatus.loading ?
+
+ :
+
+
+ Change Password
+
+
+ }
+
+ {/* error or success display */}
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+ {/* End of error or success display */}
diff --git a/src/components/Settings/Tabs/DeleteCardPopout.jsx b/src/components/Settings/Tabs/DeleteCardPopout.jsx
new file mode 100644
index 0000000..899981b
--- /dev/null
+++ b/src/components/Settings/Tabs/DeleteCardPopout.jsx
@@ -0,0 +1,142 @@
+import React, { useState } from 'react'
+import ModalCom from '../../Helpers/ModalCom'
+import LoadingSpinner from '../../Spinners/LoadingSpinner'
+import usersService from '../../../services/UsersService'
+
+function DeleteCardPopout({action, situation, data, setReloadCardList}) {
+ const api = new usersService()
+
+ const [requestStatus, setRequestStatus] = useState({loading: false, status:false, message: ''})
+
+ let handleDeleteCard = () => { // FUNCTION TO DELETE A CARD
+ setRequestStatus(prev => ({...prev, loading: true}))
+ api.payRemCard({card_uid:data.card_uid}).then(res=>{
+ if(res.status != 200 || res.data.internal_return < 0){
+ setRequestStatus({loading: false, status:false, message: 'unable to delete card. Try Again'})
+ return
+ }
+ setRequestStatus({loading: false, status:true, message: 'Card deleted'})
+ setReloadCardList(prev => !prev) // RELOADS PAY CARD LIST
+ setTimeout(()=>{action()},3000) // CLOSES MODAL AFTER SOME SECONDS
+ }).catch(err => {
+ setRequestStatus({loading: false, status:false, message: 'network error. Try Again'})
+ }).finally(()=>{
+ setTimeout(()=>{
+ setRequestStatus(prev => ({...prev, message: ''}))
+ },4000)
+ })
+ }
+ return (
+
+
+
+
+ Confirm Card Delete
+
+
+
+
+
+
+
+
+
+
+
+
+ Are you sure you want to delete?
+
+
+
+ Added: {data.added}
+
+
+ {data.description} **********{data.digits}
+
+
+
+ {/* error or success display */}
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+ {/* End of error or success display */}
+
+
+ Cancel
+
+ {requestStatus.loading ?
+
+ :
+
+ Confirm Delete
+
+ }
+
+
+
+
+ )
+}
+
+export default DeleteCardPopout
\ No newline at end of file
diff --git a/src/components/Settings/Tabs/NotificationSettingTab.jsx b/src/components/Settings/Tabs/NotificationSettingTab.jsx
index 85dffc8..dfd98f1 100644
--- a/src/components/Settings/Tabs/NotificationSettingTab.jsx
+++ b/src/components/Settings/Tabs/NotificationSettingTab.jsx
@@ -1,237 +1,112 @@
-import React, { useState } from "react";
+import React, { useEffect, useState } from "react";
import SwitchCom from "../../Helpers/SwitchCom";
+import LoadingSpinner from "../../Spinners/LoadingSpinner";
+import usersService from "../../../services/UsersService";
+import localImgLoad from "../../../lib/localImgLoad";
+import { toast } from "react-toastify";
+
+import defaultImage from '../../../assets/images/banner-job-due.jpg'
+
+
export default function NotificationSettingTab() {
- const [updateNotification, setUpdateNotification] = useState(false);
- const [uploadProduct, setUploadProduct] = useState(true);
- const [saleProduct, setSaleProduct] = useState(true);
- const [getProduct, setGetProduct] = useState(false);
- const [authLevel, setAuthLevel] = useState(true);
+ const api = new usersService();
+
+ const [accSettings, setAccSettings] = useState({loading: true, data: []}) // STATE TO HOLD ACCOUNT SETTINGS
+
+ let [notificationChange, setNotificationChange] = useState({loading: false, uid: ''})
+
+ // const [updateNotification, setUpdateNotification] = useState(false);
+ // const [uploadProduct, setUploadProduct] = useState(true);
+ // const [saleProduct, setSaleProduct] = useState(true);
+ // const [getProduct, setGetProduct] = useState(false);
+ // const [authLevel, setAuthLevel] = useState(true);
+
+ const NotificationInterfaceChange = (item) => {
+ setAccSettings(prev => {
+ let newAccSettings = prev.data.map(data => {
+ if(data.uid == item.uid){
+ let newPrefValue = data.pref_value == null || data.pref_value == false ? true : false
+ return {...data, pref_value: newPrefValue}
+ }else{
+ return data
+ }
+ })
+ return {...prev, data: newAccSettings}
+ })
+ }
+
+ let handleNotificationChange = (item) => { // FUNCTION TO SET ACCOUNT SETTING
+ setNotificationChange({loading: true, uid: item.uid})
+ let reqData = { // API PAYLOADS
+ pref_id: item.pref_id,
+ status: '100'
+ }
+ api.setAccSettings(reqData).then(res => {
+ if(res.status != 200 || res.data.internal_return < 0){
+ toast.error("unable to complete");
+ }
+ toast.success("successful");
+ NotificationInterfaceChange(item) // CHANGES NOTIFICATION UI INTERFACE
+ }).catch(errer => {
+ toast.error("unable to complete");
+ }).finally(()=>{
+ setNotificationChange({loading: false, uid: {}})
+ // setTimeout(()=>{setNotificationChange({loading: false, uid: {}})},2000)
+ })
+ }
+
+ useEffect(()=>{
+ api.getAccSettings().then(res => {
+ setAccSettings({loading: false, data: res.data?.result_list || []})
+ }).catch(errer => {
+ setAccSettings({loading: false, data: []})
+ })
+ },[])
+
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {accSettings.loading ?
+
+ :
+ accSettings.data.length ?
+ accSettings.data.map(item =>{
+ let image = item.banner && localImgLoad(`images/settings/${item.banner.toLowerCase()}`)
+ return(
+
+
+
+
+
+
+
+ {item.title}
+
+
+ {item.description}
+
+
-
-
- All Notifcation update off
-
-
- Unlockable content, only revealed by the owner of the item.
-
+
+ {notificationChange.loading && notificationChange.uid == item.uid ?
+
+ :
+ {} : () => handleNotificationChange(item)}
+ // value={updateNotification}
+ // handler={() => setUpdateNotification(!updateNotification)}
+ />
+ }
-
-
- setUpdateNotification(!updateNotification)}
- />
-
-
-
-
-
-
-
- When you upload prodcuts
-
-
- Evey new prodcuts upload seccessfullly doen you can get
- notifcation
-
-
-
-
- setUploadProduct(!uploadProduct)}
- />
-
-
-
-
-
-
-
- You got sell your prodcuts
-
-
- Evey new prodcuts sell you can get notifcation
-
-
-
-
- setSaleProduct(!saleProduct)}
- />
-
-
-
-
-
-
-
- Got new follower
-
-
- Evey new follower you can get notifcation
-
-
-
-
- setGetProduct(!getProduct)}
- />
-
-
-
-
-
-
-
- Auther leavel up
-
-
- Evey new prodcuts sell you can get notifcation
-
-
-
-
- setAuthLevel(!authLevel)}
- />
-
-
+
+ )}
+ )
+ :
+ No Cards Found
+ }
diff --git a/src/components/Settings/Tabs/PaymentMathodsTab.jsx b/src/components/Settings/Tabs/PaymentMathodsTab.jsx
index 2e34a82..e58e8ac 100644
--- a/src/components/Settings/Tabs/PaymentMathodsTab.jsx
+++ b/src/components/Settings/Tabs/PaymentMathodsTab.jsx
@@ -1,134 +1,17 @@
-import React from "react";
+import React, { useEffect, useState } from "react";
import method1 from "../../../assets/images/payment-method-1.png";
import method2 from "../../../assets/images/payment-method-2.png";
import method3 from "../../../assets/images/payment-method-3.png";
import method4 from "../../../assets/images/payment-method-4.png";
+import CardList from "./CardList";
+
export default function PaymentMathodsTab() {
return (
<>
-
-
-
-
-
-
-
-
- Datch Bangla Bank Ltd
-
-
- Bank **********5535
-
-
- Verified
-
-
-
-
-
- Manage
-
-
-
-
-
-
-
-
-
-
- Master Card
-
-
- Bank **********5535
-
-
- Verified
-
-
-
-
-
- Manage
-
-
-
-
-
-
-
-
-
-
- Paypal Account
-
-
- Bank **********5535
-
-
- Verified
-
-
-
-
-
- Manage
-
-
-
-
-
-
-
-
-
-
- Visa Card
-
-
- Bank **********5535
-
-
- Unverified
-
-
-
-
-
- Manage
-
-
-
-
-
-
- Add Bank
-
-
- Add Card
-
-
+
>
diff --git a/src/components/Settings/index.jsx b/src/components/Settings/index.jsx
index b96e6a7..64917b7 100644
--- a/src/components/Settings/index.jsx
+++ b/src/components/Settings/index.jsx
@@ -58,7 +58,7 @@ export default function Settings({ faq }) {
{
id: 2,
name: "payment",
- title: "Payment Method",
+ title: "Payment Cards",
iconName: "bank-card",
},
{
diff --git a/src/index.css b/src/index.css
index 15e7d7c..67aab4d 100644
--- a/src/index.css
+++ b/src/index.css
@@ -11,6 +11,14 @@
font-family: "Product Sans";
src: url("./assets/fonts/Product Sans Bold.ttf");
}
+.SENDER{
+ margin-left: 60px !important;
+ background-color: azure;
+}
+.RECIPIENT{
+ margin-right: 60px !important;
+ background-color: lightblue;
+}
.wallet-box{
background-color: aliceblue;
border-radius: 20px;
@@ -24,6 +32,13 @@
.referral{
margin-bottom: 20px
}
+.task_action_panel{
+ font-family: sans; color: white;
+ font-weight: bolder;
+ font-size: 14px;
+ font-family: Circular, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+ padding: 0px 10px 5px 10px
+}
.heroSilderTitle{
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
font-family: sans; color: white;
@@ -34,7 +49,7 @@
min-width: 280px !important;
}
.job-action{
- background-color: aliceblue;
+ background-color: #4687ba;
height: 100px;
border-radius: 15px;
padding: 5px;
@@ -47,9 +62,12 @@
border-radius: 15px;
}
.msg_header{
- background-color: #1a3544;
- color: white;
+ background-color: white;
+ color: black;
font-weight: bold;
+ border-radius: 9px;
+ font-size: 14px;
+ font-family: Circular, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
}
.siderCardDescription{
background-color: aliceblue;
diff --git a/src/services/UsersService.js b/src/services/UsersService.js
index bf27810..f78ad17 100644
--- a/src/services/UsersService.js
+++ b/src/services/UsersService.js
@@ -921,6 +921,53 @@ class usersService {
return this.postAuxEnd("/familysuggestlist", postData);
}
+ // FUNCTION TO CHANGE PROFILE PASSWORD
+ profilePassChange(reqData) {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: 11005,
+ ...reqData,
+ };
+ return this.postAuxEnd("/profilepasschange", postData);
+ }
+
+ // FUNCTION TO GET ACCOUNT SETTINGS
+ getAccSettings() {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: 11059,
+ };
+ return this.postAuxEnd("/getaccsettings", postData);
+ }
+
+ // FUNCTION TO SET ACCOUNT SETTINGS
+ setAccSettings(reqdata) {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: 11058,
+ ...reqdata,
+ };
+ return this.postAuxEnd("/setaccsettings", postData);
+ }
+
+ // FUNCTION TO DELETE PAY CARD
+ payRemCard(reqData) {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: 11057,
+ ...reqData,
+ };
+ return this.postAuxEnd("/payremcard", postData);
+ }
+
/*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)
diff --git a/yarn.lock b/yarn.lock
index bfcbcff..4aa0c7f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2504,7 +2504,12 @@ ajv-formats@^2.1.1:
dependencies:
ajv "^8.0.0"
-ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+ajv-keywords@^3.4.1:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv-keywords@^3.5.2:
version "3.5.2"
resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
@@ -2516,7 +2521,7 @@ ajv-keywords@^5.0.0:
dependencies:
fast-deep-equal "^3.1.3"
-ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
+ajv@^6.10.0:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -2526,27 +2531,37 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.0:
- version "8.12.0"
- resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
- integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+ajv@^6.12.2:
+ version "6.12.6"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.6.0:
- version "8.12.0"
- resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
- integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.8.0:
+ajv@^6.12.5:
+ version "6.12.6"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0:
version "8.12.0"
resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
@@ -7685,6 +7700,11 @@ q@^1.1.2:
resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz"
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+qr.js@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz"
+ integrity sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==
+
qs@6.11.0:
version "6.11.0"
resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
@@ -7748,6 +7768,11 @@ react-app-polyfill@^3.0.0:
regenerator-runtime "^0.13.9"
whatwg-fetch "^3.6.2"
+react-apple-login@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/react-apple-login/-/react-apple-login-1.1.6.tgz"
+ integrity sha512-ySV6ax0aB+ksA7lKzhr4MvsgjwSH068VtdHJXS+7rL380IJnNQNl14SszR31k3UqB8q8C1H1oyjJFGq4MyO6tw==
+
react-chartjs-2@^4.1.0:
version "4.3.1"
resolved "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-4.3.1.tgz"
@@ -7824,6 +7849,14 @@ react-is@^18.0.0:
resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+react-qr-code@^2.0.11:
+ version "2.0.11"
+ resolved "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.11.tgz"
+ integrity sha512-P7mvVM5vk9NjGdHMt4Z0KWeeJYwRAtonHTghZT2r+AASinLUUKQ9wfsGH2lPKsT++gps7hXmaiMGRvwTDEL9OA==
+ dependencies:
+ prop-types "^15.8.1"
+ qr.js "0.0.0"
+
react-redux@^8.0.5:
version "8.0.5"
resolved "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz"
@@ -7922,6 +7955,13 @@ react-slick@^0.29.0:
lodash.debounce "^4.0.8"
resize-observer-polyfill "^1.5.0"
+react-to-print@^2.14.12:
+ version "2.14.12"
+ resolved "https://registry.npmjs.org/react-to-print/-/react-to-print-2.14.12.tgz"
+ integrity sha512-qFJAwvDFd95Z+FWNqitt+HaB1/z+Zdd0MMrNOPUSus3fG32vqv512yB+HXhQ94J3HKoyqaIg44v0Zfc6xUBqlg==
+ dependencies:
+ prop-types "^15.8.1"
+
react-toastify@^9.0.1:
version "9.1.1"
resolved "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.1.tgz"