Compare commits

..

1 Commits

Author SHA1 Message Date
victorAnumudu 99d4301588 added link icons 2024-01-23 10:32:29 +01:00
33 changed files with 992 additions and 1254 deletions
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 32 28" viewBox="0 0 32 28" id="List"><circle cx="2" cy="2" r="2" fill="#767fad" class="color4e4e50 svgShape"></circle><path fill="#767fad" d="M8 0h24v4H8z" class="color4e4e50 svgShape"></path><circle cx="10" cy="10" r="2" fill="#767fad" class="color4e4e50 svgShape"></circle><path fill="#767fad" d="M16 8h16v4H16z" class="color4e4e50 svgShape"></path><circle cx="10" cy="26" r="2" fill="#767fad" class="color4e4e50 svgShape"></circle><path fill="#767fad" d="M16 24h16v4H16z" class="color4e4e50 svgShape"></path><circle cx="18" cy="18" r="2" fill="#767fad" class="color4e4e50 svgShape"></circle><path fill="#767fad" d="M24 16h8v4h-8z" class="color4e4e50 svgShape"></path></svg>

After

Width:  |  Height:  |  Size: 743 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="Group" x="0" y="0" version="1.1" viewBox="0 0 52 52" xml:space="preserve"><path d="M26.003 13.05c2.44 0 4.43-1.99 4.43-4.43a4.44 4.44 0 0 0-4.43-4.44c-2.45 0-4.44 1.99-4.44 4.44a4.44 4.44 0 0 0 4.44 4.43zM11.293 38.77c2.44 0 4.43-1.99 4.43-4.43a4.44 4.44 0 0 0-4.43-4.44c-2.45 0-4.43 1.99-4.43 4.44 0 2.44 1.98 4.43 4.43 4.43z" fill="#4687ba" class="color000000 svgShape"></path><path d="M49.493 41.93a10.091 10.091 0 0 0-3.643-3.739 6.418 6.418 0 0 1-5.138 2.58 6.392 6.392 0 0 1-4.371-1.737.975.975 0 0 0-.158-.258l-9.184-9.903V22.1h4.344c1.41 0 2.68-.73 3.4-1.94.72-1.23.73-2.7.04-3.95a10.09 10.09 0 0 0-3.643-3.739 6.418 6.418 0 0 1-5.138 2.579 6.43 6.43 0 0 1-5.144-2.58 10.085 10.085 0 0 0-3.645 3.74c-.69 1.25-.67 2.72.05 3.95a3.9 3.9 0 0 0 3.39 1.94h4.346v6.624c-.01.022-.016.044-.025.066l-9.22 9.941a.978.978 0 0 0-.22.42 6.378 6.378 0 0 1-4.242 1.62 6.417 6.417 0 0 1-5.14-2.584 10.086 10.086 0 0 0-3.65 3.743c-.69 1.25-.67 2.72.05 3.95a3.9 3.9 0 0 0 3.39 1.94h10.69c1.41 0 2.68-.73 3.4-1.94.72-1.23.73-2.7.04-3.95a10.03 10.03 0 0 0-2.134-2.612l8.01-8.636 8.055 8.685c-.815.73-1.53 1.58-2.08 2.563-.69 1.25-.67 2.72.05 3.95a3.9 3.9 0 0 0 3.39 1.94h10.69c1.41 0 2.68-.73 3.4-1.94.72-1.23.73-2.7.04-3.95z" fill="#4687ba" class="color000000 svgShape"></path><path d="M40.713 38.77c2.44 0 4.43-1.99 4.43-4.43a4.44 4.44 0 0 0-4.43-4.44c-2.45 0-4.44 1.99-4.44 4.44a4.44 4.44 0 0 0 4.44 4.43z" fill="#4687ba" class="color000000 svgShape"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" id="List"><switch><g fill="#767fad" class="color000000 svgShape"><g fill="#4687ba" class="color0ac5ab svgShape"><path d="M20 0H8a8 8 0 00-8 8v12a8 8 0 008 8h12a8 8 0 008-8V8a8 8 0 00-8-8zM56 0H44a8 8 0 00-8 8v12a8 8 0 008 8h12a8 8 0 008-8V8a8 8 0 00-8-8zM20 36H8a8 8 0 00-8 8v12a8 8 0 008 8h12a8 8 0 008-8V44a8 8 0 00-8-8zM56 36H44a8 8 0 00-8 8v12a8 8 0 008 8h12a8 8 0 008-8V44a8 8 0 00-8-8z" fill="#767fad" class="color000000 svgShape"></path></g></g></switch></svg>

After

Width:  |  Height:  |  Size: 527 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8" id="List"><path d="M0 0v3h3V0H0zm4 0v1h4V0H4zm0 2v1h3V2H4zM0 4v3h3V4H0zm4 0v1h4V4H4zm0 2v1h3V6H4z" fill="#b22b7d" class="color000000 svgShape"></path></svg>

After

Width:  |  Height:  |  Size: 214 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="List"><path d="M9 3a6 6 0 1 0 6 6A6 6 0 0 0 9 3zM9 13a4 4 0 1 1 4-4A4 4 0 0 1 9 13zM17 9H28a1 1 0 0 0 0-2H17a1 1 0 0 0 0 2zM17 13h6a1 1 0 0 0 0-2H17a1 1 0 0 0 0 2zM9 17a6 6 0 1 0 6 6A6 6 0 0 0 9 17zM9 27a4 4 0 1 1 4-4A4 4 0 0 1 9 27zM28 21H17a1 1 0 0 0 0 2H28a1 1 0 0 0 0-2zM23 25H17a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z" fill="#4687ba" class="color000000 svgShape"></path></svg>

After

Width:  |  Height:  |  Size: 437 B

@@ -59,7 +59,7 @@ export default function ForgotPassword() {
} }
if (email !== "" && checked) { if (email !== "" && checked) {
const reqData = { email }; const reqData = { email, action:11013 };
setResetLoading(true); setResetLoading(true);
try { try {
const res = await userApi.StartResetPassword(reqData); const res = await userApi.StartResetPassword(reqData);
@@ -59,7 +59,7 @@ export default function ForgotPassword() {
} }
if (email !== "" && checked) { if (email !== "" && checked) {
const reqData = { email }; const reqData = { email, action:11013 };
setResetLoading(true); setResetLoading(true);
try { try {
const res = await userApi.StartResetPassword(reqData); const res = await userApi.StartResetPassword(reqData);
+2
View File
@@ -98,6 +98,7 @@ export default function Login() {
password: password, password: password,
sessionid: "STARTING", sessionid: "STARTING",
login_mode: 1100, login_mode: 1100,
action: 11025,
}; };
} else if (name == "family") { } else if (name == "family") {
// Post Data Info for family Login // Post Data Info for family Login
@@ -106,6 +107,7 @@ export default function Login() {
pin: password, pin: password,
sessionid: "20067A92714", sessionid: "20067A92714",
login_mode: 1105, login_mode: 1105,
action: 11025,
}; };
} else { } else {
setLoginLoading(false); setLoginLoading(false);
+4 -2
View File
@@ -97,7 +97,8 @@ export default function Login() {
username: email, username: email,
password: password, password: password,
sessionid: "STARTING", sessionid: "STARTING",
login_mode: 1100 login_mode: 1100,
action: 11025,
}; };
} else if (name == "family") { } else if (name == "family") {
// Post Data Info for family Login // Post Data Info for family Login
@@ -105,7 +106,8 @@ export default function Login() {
username: email, username: email,
pin: password, pin: password,
sessionid: "20067A92714", sessionid: "20067A92714",
login_mode: 1105 login_mode: 1105,
action: 11025,
}; };
} else { } else {
setLoginLoading(false); setLoginLoading(false);
@@ -36,7 +36,10 @@ export default function VerifyLink() {
var postData = { var postData = {
username: email, username: email,
password: password, password: password,
login_mode: 100,
sessionid: "STARTER-NOTREAL",
verify_link: token, verify_link: token,
action: 11012,
}; };
const res = await userApi?.CompleteSignUp(postData); const res = await userApi?.CompleteSignUp(postData);
@@ -36,7 +36,10 @@ export default function VerifyLink() {
var postData = { var postData = {
username: email, username: email,
password: password, password: password,
login_mode: 100,
sessionid: "STARTER-NOTREAL",
verify_link: token, verify_link: token,
action: 11012,
}; };
const res = await userApi?.CompleteSignUp(postData); const res = await userApi?.CompleteSignUp(postData);
+104 -123
View File
@@ -11,11 +11,7 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
const VerifyPassword = () => { const VerifyPassword = () => {
const [password, setPassword] = useState(""); const [password, setPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState("");
const [requestStatus, setRequestStatus] = useState({ const [requestStatus, setRequestStatus] = useState({loading: true, status:false, data: []})
loading: true,
status: false,
data: [],
});
const [msgError, setMsgError] = useState(""); const [msgError, setMsgError] = useState("");
const [linkLoader, setLinkLoader] = useState(false); const [linkLoader, setLinkLoader] = useState(false);
const [linkSuccess, setLinkSuccess] = useState(null); const [linkSuccess, setLinkSuccess] = useState(null);
@@ -39,64 +35,60 @@ const VerifyPassword = () => {
}; };
const completeReset = async () => { const completeReset = async () => {
if (!password || !confirmPassword) { if(!password || !confirmPassword){ // CHECKS IF PASSWORD IS EMPTY
// CHECKS IF PASSWORD IS EMPTY
setMsgError("Please fill in fields"); setMsgError("Please fill in fields");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (password != confirmPassword) { if(password != confirmPassword){ // CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
// CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
setMsgError("Passwords does not match"); setMsgError("Passwords does not match");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (password.length < 6) { if(password.length < 6){ // CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
// CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
setMsgError("Password must be upto six characters"); setMsgError("Password must be upto six characters");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (!PasswordValidator(password)) { if(!PasswordValidator(password)){ // CHECKS IF PASSWORD IS VALID
// CHECKS IF PASSWORD IS VALID setMsgError("Password must contain alphanumeric, uppercase and special character: eg: Password1@");
setMsgError(
"Password must contain alphanumeric, uppercase and special character: eg: Password1@"
);
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
try { try {
setLinkLoader(true); setLinkLoader(true);
var reqData = { var reqData = {
reset_link: token, sessionid: "DUMMY-CANNOT_BE_EMPTY",
newpass: password, reset_link: token,
m_uid: requestStatus.data?.m_uid || "", newpass: password,
reset_uid: requestStatus.data?.reset_uid || "", m_uid: requestStatus.data?.m_uid || '',
step: 300, reset_uid: requestStatus.data?.reset_uid || '',
}; step: 300,
const res = await userApi?.CompleteResetPassword(reqData); action: 730,
};
const res = await userApi?.CompleteResetPassword(reqData);
if (res.status == 200) { if (res.status == 200) {
const { data } = res; const { data } = res;
if (data?.internal_return >= 0) { if (data?.internal_return >= 0) {
// setTimeout(() => { // setTimeout(() => {
// navigate("/login", { replace: true }); // navigate("/login", { replace: true });
// setLinkLoader(false); // setLinkLoader(false);
// }, 2000); // }, 2000);
setLinkSuccess(true); setLinkSuccess(true);
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setMsgError("An error occurred"); setMsgError("An error occurred");
setLinkSuccess(false); setLinkSuccess(false);
} }
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
} }
} catch (error) { } catch (error) {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
@@ -108,33 +100,31 @@ const VerifyPassword = () => {
} }
}; };
const verifyResetPwd = () => { const verifyResetPwd = () => { // FUNCTION TO VERIFY RESET PASSWORD LINK
// FUNCTION TO VERIFY RESET PASSWORD LINK setRequestStatus({loading: true, status:false, data: []})
setRequestStatus({ loading: true, status: false, data: [] });
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
reset_link: token, reset_link: token,
step: 200, step: 200,
action: 730,
}; };
userApi userApi.CompleteResetPassword(reqData).then(res => {
.CompleteResetPassword(reqData) if(res.status != 200 || res.data.internal_return < 0){
.then((res) => { return setRequestStatus({loading: false, status:false, data: []})
if (res.status != 200 || res.data.internal_return < 0) { }
return setRequestStatus({ loading: false, status: false, data: [] }); setRequestStatus({loading: false, status:true, data: res.data})
} }).catch(error => {
setRequestStatus({ loading: false, status: true, data: res.data }); setRequestStatus({loading: false, status:false, data: []})
}) })
.catch((error) => { }
setRequestStatus({ loading: false, status: false, data: [] });
});
};
useEffect(() => { useEffect(()=>{
// little checker for the validity of the token // little checker for the validity of the token
if (token == null || token?.length != 64) { if (token==null || token?.length != 64) {
return setRequestStatus({ loading: false, status: false, data: [] }); return setRequestStatus({loading: false, status:false, data: []});
} }
verifyResetPwd(); verifyResetPwd()
}, []); },[])
return ( return (
<> <>
<AuthLayout slogan="Welcome to WrenchBoard"> <AuthLayout slogan="Welcome to WrenchBoard">
@@ -149,68 +139,59 @@ const VerifyPassword = () => {
</Link> </Link>
</div> </div>
<div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5"> <div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5">
{requestStatus.loading ? ( {requestStatus.loading ?
<LoadingSpinner color="sky-blue" size="16" height="h-300px" /> <LoadingSpinner color='sky-blue' size='16' height='h-300px' />
) : !requestStatus.loading && requestStatus.status ? ( :
<div className="w-full"> !requestStatus.loading && requestStatus.status ?
{linkSuccess == null ? ( <div className="w-full">
<> {linkSuccess == null ?
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7"> <>
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]"> <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
Password Reset <h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]">
</h1> Password Reset
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> </h1>
Enter a new password to reset <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
</span> Enter a new password to reset
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> </span>
We'll send an email to confirm reset <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
</span> We'll send an email to confirm reset
</div> </span>
<div> </div>
<p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]"> <div>
Must include a special, numeric, uppercase and lowercase <p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]">
character Must include a special, numeric, uppercase and lowercase character
</p> </p>
</div> </div>
<SuccessfulComponent <SuccessfulComponent
password={password} password={password}
confirmPassword={confirmPassword} confirmPassword={confirmPassword}
handlePassword={handlePassword} handlePassword={handlePassword}
onSubmit={completeReset} onSubmit={completeReset}
msgErr={msgError} msgErr={msgError}
loader={linkLoader} loader={linkLoader}
showPassword={showPassword} showPassword={showPassword}
onClick={togglePasswordVisibility} onClick={togglePasswordVisibility}
navigateHandler={() => navigate("/login")} navigateHandler={() => navigate("/login")}
/>
</>
) : (
<ForgetPwdResponse
title={
linkSuccess
? "Password Reset Complete"
: "Password Reset Error"
}
message={
linkSuccess
? "Password Reset Complete. You can login now with your new credentials"
: "Password Reset Error. Please get in touch with support for further support"
}
type={linkSuccess}
/> />
)} </>
</div> :
) : (
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<ForgetPwdResponse <ForgetPwdResponse
title={"Forget Password"} title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'}
message={ message={linkSuccess? 'Password Reset Complete. You can login now with your new credentials' : 'Password Reset Error. Please get in touch with support for further support'
"We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us" }
} type={linkSuccess}
type={requestStatus.status} />
/> }
</div> </div>
)} :
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<ForgetPwdResponse
title={'Forget Password'}
message={'We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us'}
type={requestStatus.status}
/>
</div>
}
</div> </div>
</div> </div>
</AuthLayout> </AuthLayout>
+104 -123
View File
@@ -11,11 +11,7 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
const VerifyPassword = () => { const VerifyPassword = () => {
const [password, setPassword] = useState(""); const [password, setPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState("");
const [requestStatus, setRequestStatus] = useState({ const [requestStatus, setRequestStatus] = useState({loading: true, status:false, data: []})
loading: true,
status: false,
data: [],
});
const [msgError, setMsgError] = useState(""); const [msgError, setMsgError] = useState("");
const [linkLoader, setLinkLoader] = useState(false); const [linkLoader, setLinkLoader] = useState(false);
const [linkSuccess, setLinkSuccess] = useState(null); const [linkSuccess, setLinkSuccess] = useState(null);
@@ -39,64 +35,60 @@ const VerifyPassword = () => {
}; };
const completeReset = async () => { const completeReset = async () => {
if (!password || !confirmPassword) { if(!password || !confirmPassword){ // CHECKS IF PASSWORD IS EMPTY
// CHECKS IF PASSWORD IS EMPTY
setMsgError("Please fill in fields"); setMsgError("Please fill in fields");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (password != confirmPassword) { if(password != confirmPassword){ // CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
// CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
setMsgError("Passwords does not match"); setMsgError("Passwords does not match");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (password.length < 6) { if(password.length < 6){ // CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
// CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
setMsgError("Password must be upto six characters"); setMsgError("Password must be upto six characters");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if (!PasswordValidator(password)) { if(!PasswordValidator(password)){ // CHECKS IF PASSWORD IS VALID
// CHECKS IF PASSWORD IS VALID setMsgError("Password must contain alphanumeric, uppercase and special character: eg: Password1@");
setMsgError(
"Password must contain alphanumeric, uppercase and special character: eg: Password1@"
);
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
try { try {
setLinkLoader(true); setLinkLoader(true);
var reqData = { var reqData = {
reset_link: token, sessionid: "DUMMY-CANNOT_BE_EMPTY",
newpass: password, reset_link: token,
m_uid: requestStatus.data?.m_uid || "", newpass: password,
reset_uid: requestStatus.data?.reset_uid || "", m_uid: requestStatus.data?.m_uid || '',
step: 300, reset_uid: requestStatus.data?.reset_uid || '',
}; step: 300,
const res = await userApi?.CompleteResetPassword(reqData); action: 730,
};
const res = await userApi?.CompleteResetPassword(reqData);
if (res.status == 200) { if (res.status == 200) {
const { data } = res; const { data } = res;
if (data?.internal_return >= 0) { if (data?.internal_return >= 0) {
// setTimeout(() => { // setTimeout(() => {
// navigate("/login", { replace: true }); // navigate("/login", { replace: true });
// setLinkLoader(false); // setLinkLoader(false);
// }, 2000); // }, 2000);
setLinkSuccess(true); setLinkSuccess(true);
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setMsgError("An error occurred"); setMsgError("An error occurred");
setLinkSuccess(false); setLinkSuccess(false);
} }
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
} }
} catch (error) { } catch (error) {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
@@ -108,33 +100,31 @@ const VerifyPassword = () => {
} }
}; };
const verifyResetPwd = () => { const verifyResetPwd = () => { // FUNCTION TO VERIFY RESET PASSWORD LINK
// FUNCTION TO VERIFY RESET PASSWORD LINK setRequestStatus({loading: true, status:false, data: []})
setRequestStatus({ loading: true, status: false, data: [] });
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
reset_link: token, reset_link: token,
step: 200, step: 200,
action: 730,
}; };
userApi userApi.CompleteResetPassword(reqData).then(res => {
.CompleteResetPassword(reqData) if(res.status != 200 || res.data.internal_return < 0){
.then((res) => { return setRequestStatus({loading: false, status:false, data: []})
if (res.status != 200 || res.data.internal_return < 0) { }
return setRequestStatus({ loading: false, status: false, data: [] }); setRequestStatus({loading: false, status:true, data: res.data})
} }).catch(error => {
setRequestStatus({ loading: false, status: true, data: res.data }); setRequestStatus({loading: false, status:false, data: []})
}) })
.catch((error) => { }
setRequestStatus({ loading: false, status: false, data: [] });
});
};
useEffect(() => { useEffect(()=>{
// little checker for the validity of the token // little checker for the validity of the token
if (token == null || token?.length != 64) { if (token==null || token?.length != 64) {
return setRequestStatus({ loading: false, status: false, data: [] }); return setRequestStatus({loading: false, status:false, data: []});
} }
verifyResetPwd(); verifyResetPwd()
}, []); },[])
return ( return (
<> <>
<AuthLayout slogan="Welcome to WrenchBoard"> <AuthLayout slogan="Welcome to WrenchBoard">
@@ -149,68 +139,59 @@ const VerifyPassword = () => {
</Link> </Link>
</div> </div>
<div className="flex place-content-center"> <div className="flex place-content-center">
{requestStatus.loading ? ( {requestStatus.loading ?
<LoadingSpinner color="sky-blue" size="16" height="h-300px" /> <LoadingSpinner color='sky-blue' size='16' height='h-300px' />
) : !requestStatus.loading && requestStatus.status ? ( :
<div className="w-11/12 sm:max-w-[500px]"> !requestStatus.loading && requestStatus.status ?
{linkSuccess == null ? ( <div className="w-11/12 sm:max-w-[500px]">
<> {linkSuccess == null ?
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7"> <>
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]"> <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
Password Reset <h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]">
</h1> Password Reset
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> </h1>
Enter a new password to reset <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
</span> Enter a new password to reset
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> </span>
We'll send an email to confirm reset <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
</span> We'll send an email to confirm reset
</div> </span>
<div> </div>
<p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]"> <div>
Must include a special, numeric, uppercase and lowercase <p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]">
character Must include a special, numeric, uppercase and lowercase character
</p> </p>
</div> </div>
<SuccessfulComponent <SuccessfulComponent
password={password} password={password}
confirmPassword={confirmPassword} confirmPassword={confirmPassword}
handlePassword={handlePassword} handlePassword={handlePassword}
onSubmit={completeReset} onSubmit={completeReset}
msgErr={msgError} msgErr={msgError}
loader={linkLoader} loader={linkLoader}
showPassword={showPassword} showPassword={showPassword}
onClick={togglePasswordVisibility} onClick={togglePasswordVisibility}
navigateHandler={() => navigate("/login")} navigateHandler={() => navigate("/login")}
/>
</>
) : (
<ForgetPwdResponse
title={
linkSuccess
? "Password Reset Complete"
: "Password Reset Error"
}
message={
linkSuccess
? "Password Reset Complete. You can login now with your new credentials"
: "Password Reset Error. Please get in touch with support for further support"
}
type={linkSuccess}
/> />
)} </>
</div> :
) : (
<div className="w-11/12 sm:max-w-[500px] title-area flex flex-col justify-center items-center relative text-center mb-7">
<ForgetPwdResponse <ForgetPwdResponse
title={"Forget Password"} title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'}
message={ message={linkSuccess? 'Password Reset Complete. You can login now with your new credentials' : 'Password Reset Error. Please get in touch with support for further support'
"We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us" }
} type={linkSuccess}
type={requestStatus.status} />
/> }
</div> </div>
)} :
<div className="w-11/12 sm:max-w-[500px] title-area flex flex-col justify-center items-center relative text-center mb-7">
<ForgetPwdResponse
title={'Forget Password'}
message={'We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us'}
type={requestStatus.status}
/>
</div>
}
</div> </div>
</div> </div>
</AuthLayout> </AuthLayout>
@@ -13,7 +13,6 @@ import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import AssignTaskPopout from "./FamilyPopout/AssignTaskPopout"; import AssignTaskPopout from "./FamilyPopout/AssignTaskPopout";
import FamilyWallet from "./Tabs/FamilyWallet"; import FamilyWallet from "./Tabs/FamilyWallet";
import { apiConst } from "../../lib/apiConst";
// Lazy Imports for components // Lazy Imports for components
const FamilyWaitlist = lazy(() => import("./Tabs/FamilyWaitlist")); const FamilyWaitlist = lazy(() => import("./Tabs/FamilyWaitlist"));
@@ -128,7 +127,7 @@ export default function FamilyManageTabs({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: 'FILE', msg_type: 'FILE',
action: apiConst.WRENCHBOARD_PICTURE_FAMMEMBER action: 11305
} }
setUploadStatus({loading: true, status: false, message:'Loading...'}) setUploadStatus({loading: true, status: false, message:'Loading...'})
apiCall.sendFiles(reqData).then(res=>{ apiCall.sendFiles(reqData).then(res=>{
@@ -286,7 +285,7 @@ export default function FamilyManageTabs({
limit: 30, limit: 30,
offset: 0, offset: 0,
job_type: "FAMILY", job_type: "FAMILY",
action: apiConst.WRENCHBOARD_PICTURE_FAMMEMBER, action: 13005,
}; };
if (checkFamilyTask) { if (checkFamilyTask) {
@@ -1,6 +1,5 @@
import React, { useMemo, useRef, useState } from "react"; import React, { useMemo, useRef, useState } from "react";
import usersService from "../../../../services/UsersService"; import usersService from "../../../../services/UsersService";
import { apiConst } from "../../../../lib/apiConst";
const FamilyBanner = ({ imageServer }) => { const FamilyBanner = ({ imageServer }) => {
const uploadedImage = `${imageServer}${localStorage.getItem( const uploadedImage = `${imageServer}${localStorage.getItem(
@@ -66,7 +65,7 @@ const FamilyBanner = ({ imageServer }) => {
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: apiConst.WRENCHBOARD_PICTURE_JOB, action: 11303,
}; };
setUploadStatus({ setUploadStatus({
loading: true, loading: true,
@@ -55,6 +55,7 @@ export default function FamilyProfile({ familyData, className }) {
year: familyData?.year, year: familyData?.year,
month: familyData?.month, month: familyData?.month,
enable_traking: familyData?.enable_traking, enable_traking: familyData?.enable_traking,
action: 22020,
}; };
// const handleChange = ({ target: { name, value } }) => { // const handleChange = ({ target: { name, value } }) => {
@@ -1,16 +1,15 @@
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from 'react'
import ModalCom from "../../../Helpers/ModalCom"; import ModalCom from '../../../Helpers/ModalCom'
import InputCom from "../../../Helpers/Inputs/InputCom"; import InputCom from '../../../Helpers/Inputs/InputCom'
import { Form, Formik } from "formik"; import { Form, Formik } from "formik";
import * as Yup from "yup"; import * as Yup from "yup";
import { AmountTo2DP } from "../../../Helpers/PriceFormatter"; import {AmountTo2DP} from '../../../Helpers/PriceFormatter'
import usersService from "../../../../services/UsersService"; import usersService from '../../../../services/UsersService';
import LoadingSpinner from "../../../Spinners/LoadingSpinner"; import LoadingSpinner from '../../../Spinners/LoadingSpinner';
import { PriceFormatter } from "../../../Helpers/PriceFormatter"; import { PriceFormatter } from '../../../Helpers/PriceFormatter';
import { tableReload } from "../../../../store/TableReloads"; import { tableReload } from '../../../../store/TableReloads';
import { useDispatch } from "react-redux"; import { useDispatch } from 'react-redux';
import { apiConst } from "../../../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
// amount: Yup.string() // amount: Yup.string()
@@ -23,149 +22,104 @@ const validationSchema = Yup.object().shape({
// return true; // return true;
// }) // })
// .required("Amount is required"), // .required("Amount is required"),
amount: Yup.number("Please enter a number") amount: Yup.number('Please enter a number')
.min(1, "Price must be greater than 0") .min(1, "Price must be greater than 0")
.required("Amount is required"), .required("Amount is required"),
comment: Yup.string().required("Comment is required"), comment: Yup.string()
.required("Comment is required"),
}); });
function FamilyAddFundPopout({ action, situation, wallet, familyData }) { function FamilyAddFundPopout({action, situation, wallet, familyData}) {
const dispatch = useDispatch();
const apiUrl = new usersService(); const dispatch = useDispatch()
const [startTransfer, setStartTransfer] = useState({ const apiUrl = new usersService()
loading: true,
data: {}, const [startTransfer, setStartTransfer] = useState({loading:true, data: {}})
});
const [requestStatus, setRequestStatus] = useState({loading:false, status:false, message:''})
const [requestStatus, setRequestStatus] = useState({
loading: false,
status: false,
message: "",
});
// initial values for formik // initial values for formik
let initialValues = { let initialValues = {
amount: "", amount: '',
from: AmountTo2DP(startTransfer?.data?.origing_current_balance * 0.01), from : AmountTo2DP(startTransfer?.data?.origing_current_balance*0.01),
to: `${familyData.firstname} ${familyData.lastname}`, to: `${familyData.firstname} ${familyData.lastname}`,
comment: "", comment: ''
}; };
// FUNCTION TO PERFORM FAMILY TRANSFER // FUNCTION TO PERFORM FAMILY TRANSFER
const handleAddFund = (values) => { const handleAddFund = (values) => {
setRequestStatus({ loading: true, status: false, message: "" }); setRequestStatus({loading:true, status:false, message:''})
let senderBal = startTransfer?.data?.origing_current_balance || ""; // SENDER'S ACCOUNT BALANCE let senderBal = startTransfer?.data?.origing_current_balance || '' // SENDER'S ACCOUNT BALANCE
let senderLimit = startTransfer?.data?.origing_transfer_limit || ""; // SENDER'S TRANSFER LIMIT let senderLimit = startTransfer?.data?.origing_transfer_limit || '' // SENDER'S TRANSFER LIMIT
let reqData = { let reqData = { // API REQUEST DATA
// API REQUEST DATA family_uid : familyData.uid,
family_uid: familyData.uid, wallet_uid : wallet.wallet_uid,
wallet_uid: wallet.wallet_uid, origing_wallet_uid : startTransfer?.data?.origing_wallet_uid,
origing_wallet_uid: startTransfer?.data?.origing_wallet_uid, currency : startTransfer?.data?.currency,
currency: startTransfer?.data?.currency, amount : values.amount*100,
amount: values.amount * 100, description : values.comment,
description: values.comment, family_transfer_mode : 100,
family_transfer_mode: 100, action : 22014
action: apiConst.WRENCHBOARD_FAMILY_TRANSFER,
};
if (!senderBal || !senderLimit) {
// RETURNS UNAUTHORIZED, IF SENDER BAL OR LIMIT IS NOT AVAILABLE
setRequestStatus({
loading: false,
status: false,
message: "Unauthorized, try again later",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
if (values.amount > senderBal * 0.01) { if(!senderBal || !senderLimit){ // RETURNS UNAUTHORIZED, IF SENDER BAL OR LIMIT IS NOT AVAILABLE
// CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS BALANCE setRequestStatus({loading:false, status:false, message:'Unauthorized, try again later'})
setRequestStatus({ return setTimeout(()=>{
loading: false, setRequestStatus({loading:false, status:false, message:''})
status: false, }, 5000)
message: "You cannot send more than your balance",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
if (values.amount > senderLimit * 0.01) { if(values.amount > senderBal*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS BALANCE
// CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS LIMIT setRequestStatus({loading:false, status:false, message:'You cannot send more than your balance'})
setRequestStatus({ return setTimeout(()=>{
loading: false, setRequestStatus({loading:false, status:false, message:''})
status: false, }, 5000)
message: `You cannot exceed ${senderLimit * 0.01} ${
startTransfer?.data?.origing_currency.charAt(0).toUpperCase() +
startTransfer?.data?.origing_currency.slice(1).toLowerCase()
}`,
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
apiUrl if(values.amount > senderLimit*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS LIMIT
.familyTransfer(reqData) setRequestStatus({loading:false, status:false, message:`You cannot exceed ${senderLimit*0.01} ${startTransfer?.data?.origing_currency.charAt(0).toUpperCase() + startTransfer?.data?.origing_currency.slice(1).toLowerCase()}`})
.then(({ data }) => { return setTimeout(()=>{
if ( setRequestStatus({loading:false, status:false, message:''})
data.internal_return < 0 || }, 5000)
data.credit_confirm == "" || }
data.pay_confirm == ""
) { apiUrl.familyTransfer(reqData).then(({data}) => {
setRequestStatus({ if(data.internal_return < 0 || data.credit_confirm == '' || data.pay_confirm == ''){
loading: false, setRequestStatus({loading:false, status:false, message:'Transfer Failed'})
status: false, return setTimeout(()=>{
message: "Transfer Failed", setRequestStatus({loading:false, status:false, message:''})
}); }, 5000)
return setTimeout(() => { }
setRequestStatus({ loading: false, status: false, message: "" }); setRequestStatus({loading:false, status:true, message:'Transfer Successful'})
}, 5000); setTimeout(()=>{
} setRequestStatus({loading:false, status:false, message:''})
setRequestStatus({ dispatch(tableReload({ type: "WALLETTABLE" })); // UPDATES PARENT WALLET ACCOUNT
loading: false, action() // TO CLOSE THE MODAL
status: true, }, 5000)
message: "Transfer Successful", }).catch(error => {
}); setRequestStatus({loading:false, status:false, message:'Network Error, try again'})
setTimeout(() => { setTimeout(()=>{
setRequestStatus({ loading: false, status: false, message: "" }); setRequestStatus({loading:false, status:false, message:''})
dispatch(tableReload({ type: "WALLETTABLE" })); // UPDATES PARENT WALLET ACCOUNT }, 5000)
action(); // TO CLOSE THE MODAL })
}, 5000); }
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Network Error, try again",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
});
};
// LOAD FAMILY START TRANSFER // LOAD FAMILY START TRANSFER
useEffect(() => { useEffect(()=>{
let reqData = { let reqData = {
family_uid: familyData.uid, family_uid: familyData.uid,
wallet_uid: wallet.wallet_uid, wallet_uid: wallet.wallet_uid,
action: apiConst.WRENCHBOARD_FAMILY_TRANSFERSTART, action: 22013
}; }
apiUrl apiUrl.familyTransferStart(reqData).then(response => {
.familyTransferStart(reqData) setStartTransfer({loading:false, data:response?.data })
.then((response) => { }).catch(err => {
setStartTransfer({ loading: false, data: response?.data }); setStartTransfer({loading:false, data: {}})
}) })
.catch((err) => { },[])
setStartTransfer({ loading: false, data: {} });
});
}, []);
return ( return (
<ModalCom action={action} situation={situation}> <ModalCom action={action} situation={situation}>
@@ -201,125 +155,116 @@ function FamilyAddFundPopout({ action, situation, wallet, familyData }) {
</button> </button>
</div> </div>
<div className="logout-modal-body w-full flex flex-col items-center px-10 py-8"> <div className="logout-modal-body w-full flex flex-col items-center px-10 py-8">
{startTransfer.loading && ( {startTransfer.loading && <LoadingSpinner size='16' color='sky-blue' height={'h-64'} />}
<LoadingSpinner size="16" color="sky-blue" height={"h-64"} />
)}
{!startTransfer.loading && ( { !startTransfer.loading &&
<Formik <Formik
initialValues={initialValues} initialValues={initialValues}
validationSchema={validationSchema} validationSchema={validationSchema}
onSubmit={handleAddFund} onSubmit={handleAddFund}
> >
{(props) => ( {(props) => (
<Form className="w-full"> <Form className="w-full">
<div className="flex flex-col-reverse sm:flex-row"> <div className="flex flex-col-reverse sm:flex-row">
<div className="fields w-full"> <div className="fields w-full">
{/* AMOUNT */} {/* AMOUNT */}
<div className="field w-full mb-[0.5rem]"> <div className="field w-full mb-[0.5rem]">
<InputCom <InputCom
placeholder="0" placeholder="0"
label={`Amount (${startTransfer?.data?.currency})`} label={`Amount (${startTransfer?.data?.currency})`}
name="amount" name="amount"
type="text" type="text"
parentClass="flex items-center gap-1 w-full" parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0" labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${ inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${props.errors.amount && props.touched.amount ? 'border border-red-500' : ''}`}
props.errors.amount && props.touched.amount fieldClass="px-2 text-right"
? "border border-red-500" value={props.values.amount}
: "" inputHandler={props.handleChange}
}`} />
fieldClass="px-2 text-right"
value={props.values.amount}
inputHandler={props.handleChange}
/>
</div>
{/* FROM */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="From"
label={`From (${startTransfer?.data?.origing_currency})`}
name="from"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.from}
disable={true}
/>
</div>
{/* TO */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="To"
label="To:"
name="to"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.to}
disable={true}
/>
</div>
{/* COMMENT */}
<div className="field w-full mb-[0.5rem]">
<div className="w-full">
<label
htmlFor="Job Delivery Details"
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold flex items-center gap-1"
>
Comment
{/* {props.errors.comment && props.touched.comment && <span className='text-sm text-red-500'>{' '}{props.errors.comment}</span>} */}
</label>
<textarea
// id="Job Delivery Details"
rows="2"
className={`input-field px-3 py-2 placeholder:text-base text-dark-gray dark:text-white w-full bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-[#dce4e9] rounded-[10px] border ${
props.errors.comment && props.touched.comment
? "border border-red-500"
: ""
}`}
style={{ resize: "none" }}
name="comment"
value={props.values.comment}
onChange={props.handleChange}
/>
</div>
</div>
{/* inputs ends here */}
</div> </div>
{/* FROM */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="From"
label={`From (${startTransfer?.data?.origing_currency})`}
name="from"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.from}
disable={true}
/>
</div>
{/* TO */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="To"
label="To:"
name="to"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.to}
disable={true}
/>
</div>
{/* COMMENT */}
<div className="field w-full mb-[0.5rem]">
<div className="w-full">
<label
htmlFor="Job Delivery Details"
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold flex items-center gap-1"
>
Comment
{/* {props.errors.comment && props.touched.comment && <span className='text-sm text-red-500'>{' '}{props.errors.comment}</span>} */}
</label>
<textarea
// id="Job Delivery Details"
rows="2"
className={`input-field px-3 py-2 placeholder:text-base text-dark-gray dark:text-white w-full bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-[#dce4e9] rounded-[10px] border ${props.errors.comment && props.touched.comment ? 'border border-red-500' : ''}`}
style={{ resize: "none" }}
name="comment"
value={props.values.comment}
onChange={props.handleChange}
/>
</div>
</div>
{/* inputs ends here */}
</div> </div>
{/* ERROR DISPLAY AND SUBMIT BUTTON */} </div>
<div className="content-footer w-full"> {/* ERROR DISPLAY AND SUBMIT BUTTON */}
{/* error or success display */} <div className="content-footer w-full">
{requestStatus.message != "" && {/* error or success display */}
(!requestStatus.status ? ( {requestStatus.message != "" &&
(!requestStatus.status ? (
<div
className={`relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-[#912741] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
>
{requestStatus.message}
</div>
) : (
requestStatus.status && (
<div <div
className={`relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`} className={`relative p-4 text-green-700 bg-slate-200 border-slate-800 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-[#912741] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`} // className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-green-700 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
> >
{requestStatus.message} {requestStatus.message}
</div> </div>
) : ( )
requestStatus.status && ( ))}
<div {/* End of error or success display */}
className={`relative p-4 text-green-700 bg-slate-200 border-slate-800 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-green-700 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
>
{requestStatus.message}
</div>
)
))}
{/* End of error or success display */}
<div className="pt-2 w-full border-t border-light-purple dark:border-[#5356fb29] flex justify-end items-center"> <div className="pt-2 w-full border-t border-light-purple dark:border-[#5356fb29] flex justify-end items-center">
<div className="w-full flex justify-between gap-2 items-center"> <div className="w-full flex justify-between gap-2 items-center">
<button <button
type="button" type="button"
onClick={action} onClick={action}
@@ -328,31 +273,29 @@ function FamilyAddFundPopout({ action, situation, wallet, familyData }) {
Cancel Cancel
</button> </button>
<> <>
{requestStatus.loading ? ( {requestStatus.loading ?
<LoadingSpinner size="6" color="sky-blue" /> <LoadingSpinner size='6' color='sky-blue' />
) : ( :
<button <button
type="submit" type="submit"
className={`w-[150px] h-[48px] rounded-full text-base text-white bg-sky-500 hover:bg-sky-400 ${ className={`w-[150px] h-[48px] rounded-full text-base text-white bg-sky-500 hover:bg-sky-400 ${requestStatus.status ? 'opacity-50' : ''}`}
requestStatus.status ? "opacity-50" : "" disabled={requestStatus.status}
}`} >
disabled={requestStatus.status} Send
> </button>
Send }
</button>
)}
</> </>
</div>
</div> </div>
</div> </div>
</Form> </div>
)} </Form>
</Formik> )}
)} </Formik>
}
</div> </div>
</div> </div>
</ModalCom> </ModalCom>
); )
} }
export default FamilyAddFundPopout; export default FamilyAddFundPopout
+7 -1
View File
@@ -102,7 +102,13 @@ export default function FamilyAcc() {
const memberList = useCallback(async () => { const memberList = useCallback(async () => {
setLoader(true); setLoader(true);
try { try {
const res = await apiCall.familyListings(); const reqData = {
limit: 20,
offset: 0,
action: 22010,
};
const res = await apiCall.familyListings(reqData);
const { data } = res; const { data } = res;
if (data?.internal_return >= 0 && data?.status === "OK") { if (data?.internal_return >= 0 && data?.status === "OK") {
const { result_list, session_image_server } = data; const { result_list, session_image_server } = data;
+18
View File
@@ -560,6 +560,24 @@ export default function Icons({ name }) {
src={localImgLoad("images/icons/family-pin.svg")} src={localImgLoad("images/icons/family-pin.svg")}
alt="family-pin" alt="family-pin"
/> />
) : name === "pending-job" ? (
<img
className="w-[19px] h-[19px]"
src={localImgLoad("images/icons/job_pending.svg")}
alt="Pending Job"
/>
) : name === "active-job" ? (
<img
className="w-[17px] h-[17px]"
src={localImgLoad("images/icons/job_active.svg")}
alt="Active Job"
/>
) : name === "job-list" ? (
<img
className="w-[17px] h-[17px]"
src={localImgLoad("images/icons/job_list.svg")}
alt="Job List"
/>
) : ( ) : (
"" ""
)} )}
+58 -84
View File
@@ -1,93 +1,69 @@
import React, { useState } from "react"; import React, { useState } from 'react'
import ModalCom from "../Helpers/ModalCom"; import ModalCom from '../Helpers/ModalCom'
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from '../Spinners/LoadingSpinner'
import InputCom from "../Helpers/Inputs/InputCom/index"; import InputCom from '../Helpers/Inputs/InputCom/index'
import usersService from "../../services/UsersService"; import usersService from '../../services/UsersService'
import { apiConst } from "../../lib/apiConst";
export default function AddGroup({ action, situation, setUpdateList }) { export default function AddGroup({action, situation , setUpdateList}) {
const api = new usersService();
const [name, setName] = useState(""); const api = new usersService()
const handleChange = ({ target: { name, value } }) => { const [name, setName] = useState('')
setName(value);
};
let [requestStatus, setRequestStatus] = useState({ const handleChange = ({target:{name, value}}) =>{
loading: false, setName(value)
status: false, }
message: "",
}); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER
const addGroup = () => { let [requestStatus, setRequestStatus] = useState({
setRequestStatus({ loading: true, status: false, message: "" });
if (name == "") {
setRequestStatus({
loading: false, loading: false,
status: false, status: false,
message: "Please enter a group name", message: "",
}); }); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" }); const addGroup = () => {
}, 3000); setRequestStatus({loading:true, status:false, message:''})
} if(name == ''){
if (name.length < 6) { setRequestStatus({loading:false, status:false, message:'Please enter a group name'})
setRequestStatus({ return setTimeout(()=>{
loading: false, setRequestStatus({loading:false, status:false, message:''})
status: false, },3000)
message: "Group name must be up to six characters",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
}
api
.jobGroupAdd({
group_name: name,
action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
})
.then((response) => {
let { status, data } = response;
if (status != 200 || data.internal_return < 0) {
setRequestStatus({
loading: false,
status: false,
message: "Unable to add Group",
});
return;
} }
setRequestStatus({ if(name.length < 6){
loading: false, setRequestStatus({loading:false, status:false, message:'Group name must be up to six characters'})
status: true, return setTimeout(()=>{
message: "Group Added", setRequestStatus({loading:false, status:false, message:''})
}); },3000)
setTimeout(() => { }
setRequestStatus({ loading: false, status: false, message: "" }); api.jobGroupAdd({group_name:name, action:13025}).then(response => {
// close modal let {status, data} = response
action(); if(status != 200 || data.internal_return < 0){
// reload group page setRequestStatus({loading:false, status:false, message:'Unable to add Group'})
setUpdateList((prev) => !prev); return
}, 3000); }
}) setRequestStatus({loading:false, status:true, message:'Group Added'})
.catch((error) => { setTimeout(()=>{
setRequestStatus({ setRequestStatus({loading:false, status:false, message:''})
loading: false, // close modal
status: false, action()
message: "Unable to add Group, try again later", // reload group page
}); setUpdateList(prev => !prev)
}) },3000)
.finally(() => { }).catch(error => {
setTimeout(() => { setRequestStatus({loading:false, status:false, message:'Unable to add Group, try again later'})
setRequestStatus({ loading: false, status: false, message: "" }); }).finally(()=>{
}, 3000); setTimeout(()=>{
}); setRequestStatus({loading:false, status:false, message:''})
}; },3000)
})
}
return ( return (
<ModalCom action={action} situation={situation}> <ModalCom
action={action}
situation={situation}
>
<div className="logout-modal-wrapper lg:w-[500px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl"> <div className="logout-modal-wrapper lg:w-[500px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
<div className="logout-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b 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 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">
@@ -122,7 +98,7 @@ export default function AddGroup({ action, situation, setUpdateList }) {
<div className="logout-modal-body w-full flex flex-col items-center px-10 py-8"> <div className="logout-modal-body w-full flex flex-col items-center px-10 py-8">
<div className="mb-6 w-full"> <div className="mb-6 w-full">
<div className="input-item"> <div className="input-item">
<InputCom <InputCom
labelClass="tracking-wider" labelClass="tracking-wider"
fieldClass="sm:px-6 px-2" fieldClass="sm:px-6 px-2"
value={name} value={name}
@@ -132,7 +108,7 @@ export default function AddGroup({ action, situation, setUpdateList }) {
type="text" type="text"
inputHandler={handleChange} inputHandler={handleChange}
// iconName="message" // iconName="message"
/> />
</div> </div>
</div> </div>
<div className="w-full flex justify-between items-center gap-4"> <div className="w-full flex justify-between items-center gap-4">
@@ -141,9 +117,7 @@ export default function AddGroup({ action, situation, setUpdateList }) {
type="button" type="button"
className="text-base text-light-red tracking-wide " className="text-base text-light-red tracking-wide "
> >
<span className="border-b dark:border-[#5356fb29] border-light-red"> <span className="border-b dark:border-[#5356fb29] border-light-red">Cancel</span>
Cancel
</span>
</button> </button>
{requestStatus.loading ? ( {requestStatus.loading ? (
<LoadingSpinner size="8" color="sky-blue" /> <LoadingSpinner size="8" color="sky-blue" />
@@ -179,5 +153,5 @@ export default function AddGroup({ action, situation, setUpdateList }) {
</div> </div>
</div> </div>
</ModalCom> </ModalCom>
); )
} }
+242 -275
View File
@@ -1,295 +1,262 @@
import React, { useState } from "react"; import React, { useState } from 'react'
import InputCom from "../../components/Helpers/Inputs/InputCom/index"; import InputCom from '../../components/Helpers/Inputs/InputCom/index'
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from '../Spinners/LoadingSpinner'
import GroupMemberTable from "./GroupMemberTable"; import GroupMemberTable from './GroupMemberTable'
import EmailValidator from "../../lib/EmailValidator"; import EmailValidator from '../../lib/EmailValidator'
import usersService from "../../services/UsersService"; import usersService from '../../services/UsersService'
import { apiConst } from "../../lib/apiConst";
export default function MemberList({ export default function MemberList({groupList, selectedGroup, setUpdateList}) {
groupList,
selectedGroup,
setUpdateList,
}) {
const api = new usersService();
const [fields, setFields] = useState({ const api = new usersService()
firstname: "",
lastname: "",
email: "",
});
const handleFieldsChange = ({ target: { name, value } }) => { const [fields, setFields] = useState({
setFields((prev) => ({ ...prev, [name]: value })); firstname: '',
// let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes lastname: '',
// if(error >= 0){ email: ''
// let oldErrorArr = requestState.errors })
// let newErrorArr = oldErrorArr.splice(error, 1)
// setRequestState(prev => ({...prev, errors:oldErrorArr}))
// }
if (value == "") { const handleFieldsChange = ({target:{name, value}}) => {
setRequestState({ setFields(prev => ({...prev, [name]:value}))
loading: false, // let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes
status: false, // if(error >= 0){
message: "", // let oldErrorArr = requestState.errors
data: [], // let newErrorArr = oldErrorArr.splice(error, 1)
errors: [name], // setRequestState(prev => ({...prev, errors:oldErrorArr}))
}); // }
} else {
let error = requestState?.errors?.indexOf(name); //// checks if the input field was in error array and removes it when the input changes
if (error >= 0) {
let oldErrorArr = requestState.errors;
let newErrorArr = oldErrorArr.splice(error, 1);
setRequestState((prev) => ({ ...prev, errors: oldErrorArr }));
}
}
if (name == "email") { if(value == ''){
//checks if email is a valid email address setRequestState({
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/; loading: false,
if (!EmailValidator(value)) { status: false,
setRequestState({ message: '',
loading: false, data: [],
status: false, errors: [name]
message: "", })
data: [], }else{
errors: ["email"], let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes
}); if(error >= 0){
} let oldErrorArr = requestState.errors
} let newErrorArr = oldErrorArr.splice(error, 1)
}; setRequestState(prev => ({...prev, errors:oldErrorArr}))
}
const [requestState, setRequestState] = useState({
loading: false,
status: false,
message: "",
data: [],
errors: ["email", "firstname", "lastname"],
});
const addMember = () => {
// let errors = Object.keys(fields).filter((item) => { // CHECKS FOR EMPTY STRINGS
// if(typeof item == 'string' && fields[item] === ''){
// return item
// }
// })
// if(errors.length){
// setRequestState({
// loading: false,
// status: false,
// message: '',
// data: [],
// errors: [...errors]
// })
// return
// }
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(fields.email)) {
setRequestState({
loading: false,
status: false,
message: "Email is invalid",
data: [],
errors: [],
});
return setTimeout(() => {
setRequestState({
loading: false,
status: false,
message: "",
data: [],
errors: [],
});
}, 3000);
}
setRequestState({
loading: true,
status: false,
message: "",
data: [],
errors: [],
});
const requestData = {
firstname: fields.firstname,
lastname: fields.lastname,
email: fields.email,
group_id: selectedGroup?.id,
action: apiConst.WRENCHBOARD_JOB_GROUP_MEMBER,
};
api
.groupMemberAdd(requestData)
.then((response) => {
let { status, data } = response;
if (status != 200 || data?.internal_return < 0) {
setRequestState({
loading: false,
status: false,
message: "Unable to add member",
data: [],
errors: [],
});
return;
} }
setRequestState({
loading: false,
status: true,
message: "Member added",
data: [],
errors: [],
});
setTimeout(() => { if(name == 'email'){
// trigger group page reload //checks if email is a valid email address
setUpdateList((prev) => !prev); let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
setRequestState({ if (!EmailValidator(value)) {
loading: false, setRequestState({
status: false, loading: false,
message: "", status: false,
data: [], message: '',
errors: [], data: [],
}); errors: ['email']
}, 3000); })
}
}
}
const [requestState, setRequestState] = useState({
loading: false,
status: false,
message: '',
data: [],
errors: ['email', 'firstname', 'lastname']
}) })
.catch((error) => {
const addMember = () => {
// let errors = Object.keys(fields).filter((item) => { // CHECKS FOR EMPTY STRINGS
// if(typeof item == 'string' && fields[item] === ''){
// return item
// }
// })
// if(errors.length){
// setRequestState({
// loading: false,
// status: false,
// message: '',
// data: [],
// errors: [...errors]
// })
// return
// }
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(fields.email)) {
setRequestState({
loading: false,
status: false,
message: 'Email is invalid',
data: [],
errors: []
})
return setTimeout(()=>{
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
},3000)
}
setRequestState({ setRequestState({
loading: false, loading: true,
status: false, status: false,
message: "Something went wrong, try again", message: '',
data: [], data: [],
errors: [], errors: []
}); })
}) const requestData = {
.finally(() => { firstname:fields.firstname,lastname:fields.lastname, email:fields.email, group_id: selectedGroup?.id, action:13015
setTimeout(() => { }
setRequestState({
loading: false, api.groupMemberAdd(requestData).then(response => {
status: false, let {status, data} = response
message: "", if(status != 200 || data?.internal_return < 0){
data: [], setRequestState({
errors: [], loading: false,
}); status: false,
setFields({ message: 'Unable to add member',
firstname: "", data: [],
lastname: "", errors: []
email: "", })
}); return
}, 3000); }
}); setRequestState({
}; loading: false,
status: true,
message: 'Member added',
data: [],
errors: []
})
setTimeout(()=>{
// trigger group page reload
setUpdateList(prev => !prev)
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
}, 3000)
}).catch(error=>{
setRequestState({
loading: false,
status: false,
message: 'Something went wrong, try again',
data: [],
errors: []
})
}).finally(()=>{
setTimeout(()=>{
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
setFields({
firstname: '',
lastname: '',
email: ''
})
}, 3000)
})
}
return ( return (
<> <>
<div className="p-5 w-full min-h-[600px] overflow-y-auto"> <div className='p-5 w-full min-h-[600px] overflow-y-auto'>
{groupList && groupList.length < 1 ? ( {groupList && groupList.length < 1 ?
<> <>
<h1 className="my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100"> <h1 className='my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100'>You Currently Do not have any Group, Please Add Group</h1>
You Currently Do not have any Group, Please Add Group </>
</h1> :
</> <>
) : ( <h1 className='mb-5 text-lg lg:text-2xl tracking-wide font-bold text-slate-900 dark:text-slate-100'>{selectedGroup?.name}</h1>
<> <div className='w-full flex flex-col-reverse lg:flex-col'>
<h1 className="mb-5 text-lg lg:text-2xl tracking-wide font-bold text-slate-900 dark:text-slate-100"> <div className='py-3 w-full'>
{selectedGroup?.name} <div className='relative grid grid-cols-1 sm:grid-cols-2 gap-2 place-content-center'>
</h1> <div className="input-item">
<div className="w-full flex flex-col-reverse lg:flex-col"> <InputCom
<div className="py-3 w-full"> labelClass="tracking-wider"
<div className="relative grid grid-cols-1 sm:grid-cols-2 gap-2 place-content-center"> fieldClass="sm:px-6 px-2"
<div className="input-item"> value={fields.firstname}
<InputCom inputHandler={handleFieldsChange}
labelClass="tracking-wider" placeholder="First Name"
fieldClass="sm:px-6 px-2" // label="Firstname"
value={fields.firstname} name="firstname"
inputHandler={handleFieldsChange} type="text"
placeholder="First Name" // iconName="message"
// label="Firstname" />
name="firstname" </div>
type="text" <div className="input-item">
// iconName="message" <InputCom
/> labelClass="tracking-wider"
</div> fieldClass="sm:px-6 px-2"
<div className="input-item"> value={fields.lastname}
<InputCom inputHandler={handleFieldsChange}
labelClass="tracking-wider" placeholder="Last Name"
fieldClass="sm:px-6 px-2" // label="Lastname"
value={fields.lastname} name="lastname"
inputHandler={handleFieldsChange} type="text"
placeholder="Last Name" // iconName="message"
// label="Lastname" />
name="lastname" </div>
type="text" <div className="input-item w-full sm:w-[150%]">
// iconName="message" <InputCom
/> labelClass="tracking-wider"
</div> fieldClass="sm:px-6 px-2"
<div className="input-item w-full sm:w-[150%]"> value={fields.email}
<InputCom inputHandler={handleFieldsChange}
labelClass="tracking-wider" placeholder="Email"
fieldClass="sm:px-6 px-2" // label="Email"
value={fields.email} name="email"
inputHandler={handleFieldsChange} type="email"
placeholder="Email" // iconName="message"
// label="Email" />
name="email" </div>
type="email" <div className='flex justify-end items-end'>
// iconName="message" {requestState.loading ?
/> <LoadingSpinner size='8' color='sky-blue' />
</div> :
<div className="flex justify-end items-end"> <button
{requestState.loading ? ( onClick={addMember}
<LoadingSpinner size="8" color="sky-blue" /> disabled={requestState.loading || requestState.status || requestState.errors.length}
) : ( className={`py-2 px-4 h-[42px] flex justify-center items-center text-base rounded-full text-white font-bold transition-all duration-500 ${requestState.loading || requestState.status || requestState.errors.length ? 'bg-sky-blue/50' : 'bg-sky-blue hover:bg-sky-600'} `}
<button >
onClick={addMember} Add Member
disabled={ </button>
requestState.loading || }
requestState.status || </div>
requestState.errors.length
}
className={`py-2 px-4 h-[42px] flex justify-center items-center text-base rounded-full text-white font-bold transition-all duration-500 ${
requestState.loading ||
requestState.status ||
requestState.errors.length
? "bg-sky-blue/50"
: "bg-sky-blue hover:bg-sky-600"
} `}
>
Add Member
</button>
)}
</div>
{!requestState.loading && requestState.message && ( {!requestState.loading && requestState.message &&
<p <p className={`text-lg absolute -bottom-7 left-0 ${requestState.status ? 'text-green-500' : 'text-red-500'}`}>{requestState.message}</p>
className={`text-lg absolute -bottom-7 left-0 ${ }
requestState.status ? "text-green-500" : "text-red-500" </div>
}`} </div>
> <div className='my-2 flex flex-col min-h-[300px]'>
{requestState.message} {selectedGroup?.data?.length < 1 ?
</p> <h1 className='my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100'>No Member Found, Please Add</h1>
)} :
<GroupMemberTable selectedList={selectedGroup?.data} />
}
</div> </div>
</div>
<div className="my-2 flex flex-col min-h-[300px]">
{selectedGroup?.data?.length < 1 ? (
<h1 className="my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100">
No Member Found, Please Add
</h1>
) : (
<GroupMemberTable selectedList={selectedGroup?.data} />
)}
</div>
</div> </div>
</> </>
)} }
</div> </div>
</> </>
); )
} }
@@ -4,7 +4,7 @@ import { useNavigate } from "react-router-dom";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { apiConst } from "../../lib/apiConst";
function DeleteTaskModal({ details, onClose, situation, setReloadList }) { function DeleteTaskModal({ details, onClose, situation, setReloadList }) {
let dispatch = useDispatch(); let dispatch = useDispatch();
@@ -19,50 +19,34 @@ function DeleteTaskModal({ details, onClose, situation, setReloadList }) {
// FUNCTION TO DELETE TASK // FUNCTION TO DELETE TASK
const deleteTask = () => { const deleteTask = () => {
setRequestStatus({ loading: true, status: false, message: "" }); setRequestStatus({loading:true, status:false, message: ''})
let reqData = { let reqData = { // REQUEST PAYLOAD
// REQUEST PAYLOAD
suggest_uid: details.uid, suggest_uid: details.uid,
suggest_action: apiConst.WRENCHBOARD_COMPLETE_SENDMONEY_INTERSW, suggest_action: 555,
offset: 0, offset: 0
}; }
ApiCall.suggestStatus(reqData) ApiCall.suggestStatus(reqData).then((response)=>{ // API CALL TO DELETE SUGGESTED TASK
.then((response) => { let {data} = response
// API CALL TO DELETE SUGGESTED TASK if(data.internal_return < 0){
let { data } = response; setRequestStatus({loading:false, status:false, message: 'Unable to delete, Try again'})
if (data.internal_return < 0) { return setTimeout(()=>{
setRequestStatus({ setRequestStatus({loading:false, status:false, message: ''})
loading: false, },3000)
status: false, }
message: "Unable to delete, Try again", setRequestStatus({loading:false, status:true, message: 'Family Suggest Deleted'})
}); setReloadList(prev => !prev) // RELOADS THE FAMILY SUGGEST LIST TABLE
return setTimeout(() => { setTimeout(()=>{
setRequestStatus({ loading: false, status: false, message: "" }); setRequestStatus({loading:false, status:false, message: ''})
}, 3000); onClose()
} },3000)
setRequestStatus({ }).catch(error => {
loading: false, setRequestStatus({loading:false, status:false, message: 'Unable to delete, Try again'})
status: true, setTimeout(()=>{
message: "Family Suggest Deleted", setRequestStatus({loading:false, status:false, message: ''})
}); },3000)
setReloadList((prev) => !prev); // RELOADS THE FAMILY SUGGEST LIST TABLE })
setTimeout(() => { }
setRequestStatus({ loading: false, status: false, message: "" });
onClose();
}, 3000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Unable to delete, Try again",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
});
};
return ( return (
<ModalCom action={onClose} situation={situation}> <ModalCom action={onClose} situation={situation}>
@@ -4,7 +4,7 @@ import { useNavigate } from "react-router-dom";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { apiConst } from "../../lib/apiConst";
function SendReminderModal({ details, onClose, situation, setReloadList }) { function SendReminderModal({ details, onClose, situation, setReloadList }) {
let dispatch = useDispatch(); let dispatch = useDispatch();
@@ -19,50 +19,34 @@ function SendReminderModal({ details, onClose, situation, setReloadList }) {
// FUNCTION TO SEND REMINDER // FUNCTION TO SEND REMINDER
const sendReminder = () => { const sendReminder = () => {
setRequestStatus({ loading: true, status: false, message: "" }); setRequestStatus({loading:true, status:false, message: ''})
let reqData = { let reqData = { // REQUEST PAYLOAD
// REQUEST PAYLOAD
suggest_uid: details.uid, suggest_uid: details.uid,
suggest_action: apiConst.OFFER_CANCEL, suggest_action: 222,
offset: 0, offset: 0
}; }
ApiCall.suggestStatus(reqData) ApiCall.suggestStatus(reqData).then((response)=>{ // API CALL TO DELETE SUGGESTED TASK
.then((response) => { let {data} = response
// API CALL TO DELETE SUGGESTED TASK if(data.internal_return < 0){
let { data } = response; setRequestStatus({loading:false, status:false, message: 'Unable to send reminder, Try again1111'})
if (data.internal_return < 0) { return setTimeout(()=>{
setRequestStatus({ setRequestStatus({loading:false, status:false, message: ''})
loading: false, },3000)
status: false, }
message: "Unable to send reminder, Try again1111", setRequestStatus({loading:false, status:true, message: 'Reminder Sent'})
}); setReloadList(prev => !prev) // RELOADS THE FAMILY SUGGEST LIST TABLE
return setTimeout(() => { setTimeout(()=>{
setRequestStatus({ loading: false, status: false, message: "" }); setRequestStatus({loading:false, status:false, message: ''})
}, 3000); onClose()
} },3000)
setRequestStatus({ }).catch(error => {
loading: false, setRequestStatus({loading:false, status:false, message: 'Unable to send reminder, Try againNETWORK'})
status: true, setTimeout(()=>{
message: "Reminder Sent", setRequestStatus({loading:false, status:false, message: ''})
}); },3000)
setReloadList((prev) => !prev); // RELOADS THE FAMILY SUGGEST LIST TABLE })
setTimeout(() => { }
setRequestStatus({ loading: false, status: false, message: "" });
onClose();
}, 3000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Unable to send reminder, Try againNETWORK",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
});
};
return ( return (
<ModalCom action={onClose} situation={situation}> <ModalCom action={onClose} situation={situation}>
@@ -98,32 +82,27 @@ function SendReminderModal({ details, onClose, situation, setReloadList }) {
</button> </button>
</div> </div>
<div className="logout-modal-body w-full flex flex-col items-center p-8"> <div className="logout-modal-body w-full flex flex-col items-center p-8">
<div className="mb-6 w-full flex gap-4 items-center">
<div className="mb-6 w-full flex gap-4 items-center">
<div className="icon max-w-[150px] min-w-[150px] max-h-[150px] min-h-[150px] flex justify-center items-center"> <div className="icon max-w-[150px] min-w-[150px] max-h-[150px] min-h-[150px] flex justify-center items-center">
<img <img src={require(`../../assets/images/family/${details.banner || "default.jpg"}`)} alt="" className="w-full h-full" />
src={require(`../../assets/images/family/${
details.banner || "default.jpg"
}`)}
alt=""
className="w-full h-full"
/>
</div> </div>
<div className="w-full"> <div className="w-full">
<p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1">
{details.title}
</p>
<p className="text-sm mb-2 text-thin-light-gray font-medium">
{details.description}
</p>
{details.remind && (
<p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1"> <p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1">
Last Remind:{" "} {details.title}
{new Date(details.remind).toLocaleString().split(",")[0]}
</p> </p>
)}
<p className="text-sm mb-2 text-thin-light-gray font-medium">
{details.description}
</p>
{
details.remind &&
<p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1">
Last Remind: {new Date(details.remind).toLocaleString().split(',')[0]}
</p>
}
</div> </div>
</div> </div>
<div className="w-full flex justify-end"> <div className="w-full flex justify-end">
{/* <button {/* <button
+3 -3
View File
@@ -190,16 +190,16 @@ export default function MobileSidebar({
<div className="items"> <div className="items">
<ul className="flex flex-col space-y-6"> <ul className="flex flex-col space-y-6">
{[ {[
{ name: "List", path: "/myjobs", iconName: "people-two" }, { name: "List", path: "/myjobs", iconName: "job-list" },
{ {
name: "Pending", name: "Pending",
path: "/my-pending-jobs", path: "/my-pending-jobs",
iconName: "people-two", iconName: "pending-job",
}, },
{ {
name: "Active", name: "Active",
path: "/my-active-jobs", path: "/my-active-jobs",
iconName: "people-two", iconName: "active-job",
}, },
].map(({ name, path, iconName }, idx) => ( ].map(({ name, path, iconName }, idx) => (
<ListItem <ListItem
+42 -132
View File
@@ -2,6 +2,7 @@ import React, { useState } from "react";
import { useSelector } from "react-redux"; import { useSelector } from "react-redux";
import { NavLink } from "react-router-dom"; import { NavLink } from "react-router-dom";
//import SideStatistics from "./SideStatistics"; //import SideStatistics from "./SideStatistics";
import { localImgLoad } from "../../lib";
export default function RightSideBar({myJobList}) { export default function RightSideBar({myJobList}) {
const filterDatas = ["Last 15 days", "Last Month", "Last 6 month"]; const filterDatas = ["Last 15 days", "Last Month", "Last 6 month"];
@@ -169,24 +170,8 @@ export default function RightSideBar({myJobList}) {
<div className="platform-list"> <div className="platform-list">
<div className="px-8 item flex space-x-3 items-center mb-4"> <div className="px-8 item flex space-x-3 items-center mb-4">
{/* image */} {/* image */}
<div className="w-8 h-8 rounded-full"> <div className="w-8 h-8 p-[4px] rounded-full">
<svg <img src={localImgLoad('images/icons/job_active.svg')} className="w-full h-full" alt='Active Task' />
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
id="history"
>
<g data-name="14">
<circle cx="9" cy="14" r="7" fill="#ffd54f"></circle>
<path
fill="#ef6c00"
d="M21 9H17a1 1 0 0 1 0-2h4a1 1 0 0 1 0 2zM21 5H3A1 1 0 0 1 3 3H21a1 1 0 0 1 0 2zM21 13H19a1 1 0 0 1 0-2h2a1 1 0 0 1 0 2zM21 17H19a1 1 0 0 1 0-2h2a1 1 0 0 1 0 2zM21 21H17a1 1 0 0 1 0-2h4a1 1 0 0 1 0 2z"
></path>
<path
fill="#ff8f00"
d="M10,10a1,1,0,0,0-2,0v3.59L6.29,15.29a1,1,0,1,0,1.41,1.41l2-2A1,1,0,0,0,10,14Z"
></path>
</g>
</svg>
</div> </div>
{/* name */} {/* name */}
<div> <div>
@@ -196,123 +181,48 @@ export default function RightSideBar({myJobList}) {
</div> </div>
{/* action */} {/* action */}
</div> </div>
{/* {userDetails && userDetails?.account_type !== "FAMILY" && (
<>
</>
)} */}
<div className="px-8 item flex space-x-3 items-center mb-4">
{/* image */}
<div className="w-8 h-8 rounded-full">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
id="add-user"
>
<path
fill="#9bcb5b"
d="M12 13.4c-2 0-3.7-1.6-3.7-3.6s1.6-3.7 3.6-3.7 3.7 1.6 3.7 3.6-1.6 3.6-3.6 3.7zm0-6.2c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6s2.6-1.1 2.6-2.6c-.1-1.5-1.2-2.6-2.6-2.6z"
></path>
<path
fill="#9bcb5b"
d="M16.6 17.9c-.3 0-.5-.2-.6-.5 0-2.2-1.8-4-4-4s-4 1.8-4 4c0 .3-.3.5-.6.5-.2 0-.4-.2-.5-.5 0-2.8 2.3-5.1 5.1-5.1s5.1 2.3 5.1 5.1c0 .3-.2.5-.5.5z"
></path>
<path
fill="#0376bc"
d="M12 23.7C5.5 23.7.3 18.4.3 12 .3 5.5 5.6.3 12 .3c2.6 0 5.1.9 7.2 2.5.2.2.2.6 0 .8-.2.2-.4.2-.7.1-1.9-1.4-4.1-2.2-6.5-2.2C6.2 1.4 1.4 6.2 1.4 12S6.2 22.6 12 22.6 22.6 17.8 22.6 12c0-2.4-.8-4.6-2.2-6.5-.2-.3-.1-.6.2-.8.2-.1.5-.1.7.1 1.6 2 2.5 4.6 2.4 7.2 0 6.4-5.3 11.7-11.7 11.7z"
></path>
<circle cx="20.2" cy="20.3" r="2.4" fill="#fff"></circle>
<path
fill="#9bcb5b"
d="M18 18.1c.6-.6 1.4-.9 2.2-.9.8 0 1.6.3 2.2.9s1 1.4.9 2.2c0 .8-.3 1.6-.9 2.2s-1.4 1-2.2.9c-.8 0-1.6-.3-2.2-.9s-1-1.4-.9-2.2c-.1-.8.3-1.7.9-2.2zm3.8 2.5V20h-1.3v-1.3h-.6V20h-1.3v.6h1.3v1.3h.6v-1.3h1.3z"
></path>
</svg>
</div>
{/* name */}
<div>
<p className="text-thin-light-gray text-base font-medium">
<NavLink to="/my-review-jobs">Review Pending</NavLink>
</p>
</div>
</div>
<div className="px-8 item flex space-x-3 items-center mb-4"> <div className="px-8 item flex space-x-3 items-center mb-4">
{/* image */} {/* image */}
<div className="w-8 h-8 rounded-full"> <div className="w-8 h-8 p-[4px] rounded-full">
<svg <img src={localImgLoad('images/icons/job_pending.svg')} className="w-full h-full" alt='Review Task' />
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 48 48"
id="InternationalUser"
>
<path
fill="#e6e7f9"
d="M38.5 31.1c2.1-1.1 3.9-2.5 5.4-4.4h-3.2c-.6 1.6-1.3 3.1-2.2 4.4zm-5.8 1.4c2-.7 3.7-2.8 4.9-5.8h-4.9v5.8zm8.8-8.6h4.2c.9-1.8 1.5-3.7 1.7-5.8h-5.1c-.1 2-.4 4-.8 5.8zm2.4-17.3c-1.5-1.8-3.3-3.3-5.4-4.4.8 1.2 1.6 2.7 2.2 4.4h3.2zm-5.3 2.9h-5.9v5.8h6.7c-.1-2.1-.4-4.1-.8-5.8zm3.7 5.8h5.1c-.2-2.1-.8-4-1.7-5.8h-4.2c.4 1.8.7 3.7.8 5.8zM32.7.8v5.8h4.9c-1.2-2.9-2.9-5.1-4.9-5.8zm6.7 17.3h-6.7v5.8h5.9c.4-1.8.7-3.8.8-5.8zM25 6.6h4.9V.8c-2 .7-3.7 2.9-4.9 5.8zm-1.8 8.7h6.7V9.5H24c-.4 1.7-.7 3.7-.8 5.8zm6.7 17.2v-5.8H25c1.2 3 2.9 5.1 4.9 5.8zM24.1 2.3c-2.1 1.1-3.9 2.5-5.4 4.4H22c.5-1.7 1.3-3.2 2.1-4.4zM24 23.9h5.9v-5.8h-6.7c.1 2 .4 4 .8 5.8z"
className="colorc1e5ff svgShape"
></path>
<path
fill="#ff6699"
d="M3.7 44.7c0 1.6 1.2 2.8 2.8 2.8 1.3 0 2.4-.9 2.7-2.2.3 1.3 1.4 2.2 2.7 2.2 1.5 0 2.8-1.3 2.8-2.8V30.1h3.1V18.8c0-4.2-3.3-7.5-7.4-7.5H8c-4.1 0-7.4 3.4-7.4 7.5v11.3h3.1v14.6z"
className="colorff99b0 svgShape"
></path>
<path
fill="#998da0"
d="M9.2 10.3c2.4 0 4.4-2.2 4.4-4.9S11.6.5 9.2.5C6.8.5 4.8 2.7 4.8 5.4s2 4.9 4.4 4.9z"
className="colorffd499 svgShape"
></path>
<path
fill="#e6e7f9"
d="M16.9 9.5c-.3.6-.5 1.2-.8 1.8 1.3 1 2.3 2.4 2.9 4h1.3c.1-2 .3-4 .8-5.8h-4.2zm2.9 9.3v5.1h1.4c-.4-1.8-.7-3.8-.8-5.8h-.6c-.1.2 0 .4 0 .7zm2.2 7.9h-2.2v1.2c1.3 1.3 2.7 2.4 4.4 3.2-.9-1.3-1.7-2.8-2.2-4.4z"
className="colorc1e5ff svgShape"
></path>
</svg>
</div>
{/* name */}
<div>
<p className="text-thin-light-gray text-base font-medium">
<NavLink to="/my-pastdue-jobs">Past Due</NavLink>
</p>
</div>
</div> </div>
{/* name */}
{/* Line */} <div>
<div className="my-4 mx-auto w-10/12 h-[2px] bg-slate-500 dark:bg-white rounded-full"></div> <p className="text-thin-light-gray text-base font-medium">
<NavLink to="/my-review-jobs">Review Pending</NavLink>
<div className="px-8 item flex space-x-3 items-center mb-4"> </p>
{/* image */}
<div className="w-8 h-8 rounded-full">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 48 48"
id="InternationalUser"
>
<path
fill="#e6e7f9"
d="M38.5 31.1c2.1-1.1 3.9-2.5 5.4-4.4h-3.2c-.6 1.6-1.3 3.1-2.2 4.4zm-5.8 1.4c2-.7 3.7-2.8 4.9-5.8h-4.9v5.8zm8.8-8.6h4.2c.9-1.8 1.5-3.7 1.7-5.8h-5.1c-.1 2-.4 4-.8 5.8zm2.4-17.3c-1.5-1.8-3.3-3.3-5.4-4.4.8 1.2 1.6 2.7 2.2 4.4h3.2zm-5.3 2.9h-5.9v5.8h6.7c-.1-2.1-.4-4.1-.8-5.8zm3.7 5.8h5.1c-.2-2.1-.8-4-1.7-5.8h-4.2c.4 1.8.7 3.7.8 5.8zM32.7.8v5.8h4.9c-1.2-2.9-2.9-5.1-4.9-5.8zm6.7 17.3h-6.7v5.8h5.9c.4-1.8.7-3.8.8-5.8zM25 6.6h4.9V.8c-2 .7-3.7 2.9-4.9 5.8zm-1.8 8.7h6.7V9.5H24c-.4 1.7-.7 3.7-.8 5.8zm6.7 17.2v-5.8H25c1.2 3 2.9 5.1 4.9 5.8zM24.1 2.3c-2.1 1.1-3.9 2.5-5.4 4.4H22c.5-1.7 1.3-3.2 2.1-4.4zM24 23.9h5.9v-5.8h-6.7c.1 2 .4 4 .8 5.8z"
className="colorc1e5ff svgShape"
></path>
<path
fill="#ff6699"
d="M3.7 44.7c0 1.6 1.2 2.8 2.8 2.8 1.3 0 2.4-.9 2.7-2.2.3 1.3 1.4 2.2 2.7 2.2 1.5 0 2.8-1.3 2.8-2.8V30.1h3.1V18.8c0-4.2-3.3-7.5-7.4-7.5H8c-4.1 0-7.4 3.4-7.4 7.5v11.3h3.1v14.6z"
className="colorff99b0 svgShape"
></path>
<path
fill="#998da0"
d="M9.2 10.3c2.4 0 4.4-2.2 4.4-4.9S11.6.5 9.2.5C6.8.5 4.8 2.7 4.8 5.4s2 4.9 4.4 4.9z"
className="colorffd499 svgShape"
></path>
<path
fill="#e6e7f9"
d="M16.9 9.5c-.3.6-.5 1.2-.8 1.8 1.3 1 2.3 2.4 2.9 4h1.3c.1-2 .3-4 .8-5.8h-4.2zm2.9 9.3v5.1h1.4c-.4-1.8-.7-3.8-.8-5.8h-.6c-.1.2 0 .4 0 .7zm2.2 7.9h-2.2v1.2c1.3 1.3 2.7 2.4 4.4 3.2-.9-1.3-1.7-2.8-2.2-4.4z"
className="colorc1e5ff svgShape"
></path>
</svg>
</div>
{/* name */}
<div>
<p className="text-thin-light-gray text-base font-medium">
<NavLink to="/job-groups">Job Groups</NavLink>
</p>
</div>
</div> </div>
</div>
<div className="px-8 item flex space-x-3 items-center mb-4">
{/* image */}
<div className="w-8 h-8 p-[4px] rounded-full">
<img src={localImgLoad('images/icons/job_past_due.svg')} className="w-full h-full" alt='Past Due Task' />
</div>
{/* name */}
<div>
<p className="text-thin-light-gray text-base font-medium">
<NavLink to="/my-pastdue-jobs">Past Due</NavLink>
</p>
</div>
</div>
{/* Line */}
<div className="my-4 mx-auto w-10/12 h-[2px] bg-slate-500 dark:bg-white rounded-full"></div>
<div className="px-8 item flex space-x-3 items-center mb-4">
{/* image */}
<div className="w-8 h-8 p-[4px] rounded-full">
<img src={localImgLoad('images/icons/job_group.svg')} className="w-full h-full" alt='Job Groups' />
</div>
{/* name */}
<div>
<p className="text-thin-light-gray text-base font-medium">
<NavLink to="/job-groups">Job Groups</NavLink>
</p>
</div>
</div>
</div> </div>
</div> </div>
} }
+3 -3
View File
@@ -215,17 +215,17 @@ export default function Sidebar({
{ {
name: "List", name: "List",
path: "/myjobs", path: "/myjobs",
iconName: "people-two", iconName: "job-list",
}, },
{ {
name: "Pending", name: "Pending",
path: "/my-pending-jobs", path: "/my-pending-jobs",
iconName: "people-two", iconName: "pending-job",
}, },
{ {
name: "Active", name: "Active",
path: "/my-active-jobs", path: "/my-active-jobs",
iconName: "people-two", iconName: "active-job",
}, },
].map(({ name, path, iconName }, idx) => ( ].map(({ name, path, iconName }, idx) => (
<ListItem <ListItem
@@ -11,7 +11,6 @@ import profileImage from "../../../assets/images/profile.jpg";
import { Form, Formik } from "formik"; import { Form, Formik } from "formik";
import * as Yup from "yup"; import * as Yup from "yup";
import { apiConst } from "../../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
email: Yup.string() email: Yup.string()
@@ -148,7 +147,7 @@ export default function PersonalInfoTab({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: apiConst.WRENCHBOARD_PICTURE_PROFILE, action: 11300,
}; };
setUploadStatus({ setUploadStatus({
+1 -2
View File
@@ -8,7 +8,6 @@ import ProductUploadField from "./ProductUploadField";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { apiConst } from "../../lib/apiConst";
export default function UploadProduct({uploadTypes}) { export default function UploadProduct({uploadTypes}) {
const apiCall = new usersService() const apiCall = new usersService()
@@ -153,7 +152,7 @@ export default function UploadProduct({uploadTypes}) {
title: itemName, title: itemName,
description: description, description: description,
msg_type: 'FILE', msg_type: 'FILE',
action: apiConst.WRENCHBOARD_RESOURCE_MYFILES action: 11307
} }
if(!isValidFile(imgDetails, uploadTypes?.data)){ // FUNCTION TO CHECK IF FILE TYPE IS VALID if(!isValidFile(imgDetails, uploadTypes?.data)){ // FUNCTION TO CHECK IF FILE TYPE IS VALID
+1 -2
View File
@@ -8,7 +8,6 @@ import { tableReload } from "../../store/TableReloads";
import InputCom from "../Helpers/Inputs/InputCom"; import InputCom from "../Helpers/Inputs/InputCom";
import ModalCom from "../Helpers/ModalCom"; import ModalCom from "../Helpers/ModalCom";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { apiConst } from "../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
country: Yup.string() country: Yup.string()
@@ -163,7 +162,7 @@ const EditJobPopOut = ({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: apiConst.WRENCHBOARD_PICTURE_JOB, action: 11303,
}; };
setUploadStatus({ setUploadStatus({
loading: true, loading: true,
+11 -1
View File
@@ -48,7 +48,13 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
const memberList = useCallback(async () => { const memberList = useCallback(async () => {
setLoader({ member: true, jobFields: false }); setLoader({ member: true, jobFields: false });
try { try {
let res = await apiCall.familyListings(); let reqData = {
limit: 20,
offset: 0,
action: 22010,
};
let res = await apiCall.familyListings(reqData);
const { data } = res; const { data } = res;
if (data?.internal_return >= 0 && data?.status == "OK") { if (data?.internal_return >= 0 && data?.status == "OK") {
let { result_list } = data; let { result_list } = data;
@@ -124,6 +130,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
family_uid: values?.family, family_uid: values?.family,
action: 13025,
assign_mode: 110011, assign_mode: 110011,
}; };
setLoader({ jobFields: { family: true } }); setLoader({ jobFields: { family: true } });
@@ -132,6 +139,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
duration: Number(values?.public), duration: Number(values?.public),
action: 13025,
assign_mode: 110022, assign_mode: 110022,
}; };
setLoader({ jobFields: { public: true } }); setLoader({ jobFields: { public: true } });
@@ -140,6 +148,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
email: values?.individual, email: values?.individual,
action: 13025,
assign_mode: 110033, assign_mode: 110033,
}; };
setLoader({ jobFields: { individual: true } }); setLoader({ jobFields: { individual: true } });
@@ -149,6 +158,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
...jobReq, ...jobReq,
email: '', email: '',
group_id: values?.group, group_id: values?.group,
action: 13025,
assign_mode: 110044, assign_mode: 110044,
duration: details?.timeline_days, duration: details?.timeline_days,
// duration: 0, // duration: 0,
+2 -2
View File
@@ -122,8 +122,8 @@ export const apiConst = {
WRENCHBOARD_ACCOUNT_PRICE_COMBO: 11171, WRENCHBOARD_ACCOUNT_PRICE_COMBO: 11171,
WRENCHBOARD_ACCOUNT_JOBPOST_DURATION: 11173, WRENCHBOARD_ACCOUNT_JOBPOST_DURATION: 11173,
WRENCHBOARD_ACCOUNT_USER_RECIPIENT: 11175, WRENCHBOARD_ACCOUNT_USER_RECIPEINT: 11175,
WRENCHBOARD_ACCOUNT_ADD_RECIPIENT: 11176, WRENCHBOARD_ACCOUNT_ADD_RECIPEINT: 11176,
WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES: 11177, WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES: 11177,
WRENCHBOARD_ACCOUNT_COUNTRY_COMBO: 11179, WRENCHBOARD_ACCOUNT_COUNTRY_COMBO: 11179,
WRENCHBOARD_ACCOUNT_JOB_COUNTRY: 11181, WRENCHBOARD_ACCOUNT_JOB_COUNTRY: 11181,
+1 -2
View File
@@ -1,5 +1,4 @@
import Axios from "axios"; import Axios from "axios";
import { apiConst } from "../lib/apiConst";
class SiteService { class SiteService {
constructor() { constructor() {
@@ -33,7 +32,7 @@ class SiteService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_FAMILY_ADD, action: 22015,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familyadd", postData); return this.postAuxEnd("/familyadd", postData);
+96 -121
View File
@@ -1,5 +1,4 @@
import Axios from "axios"; import Axios from "axios";
import { apiConst } from "../lib/apiConst";
class usersService { class usersService {
constructor() { constructor() {
@@ -11,7 +10,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
...reqData, ...reqData
}; };
return this.postAuxEnd("/mypageintro", postData); return this.postAuxEnd("/mypageintro", postData);
} }
@@ -21,7 +20,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_MYPAGE, action: 11070
}; };
return this.postAuxEnd("/mypageload", postData); return this.postAuxEnd("/mypageload", postData);
} }
@@ -35,15 +34,8 @@ class usersService {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
return this.postAuxEnd("/authlogin", reqData); return this.postAuxEnd("/authlogin", reqData);
} }
CompleteSignUp(postData) { CompleteSignUp(reqData) {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
var reqData = {
login_mode: 100,
sessionid: "STARTER-NOTREAL",
action: apiConst.WRENCHBOARD_COMPLETE_MOBILEUSER,
...postData,
};
return this.postAuxEnd("/completesignuplink", reqData); return this.postAuxEnd("/completesignuplink", reqData);
} }
@@ -52,7 +44,6 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/assigntask", postData); return this.postAuxEnd("/assigntask", postData);
@@ -74,18 +65,13 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_RECENTS, action: 11202,
}; };
return this.postAuxEnd("/recentactivities", postData); return this.postAuxEnd("/recentactivities", postData);
} }
logInUser(postData) { logInUser(reqData) {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
var reqData = {
action: apiConst.WRENCHBOARD_ACCOUNT_LOGIN,
...postData,
};
return this.postAuxEnd("/userlogin", reqData); return this.postAuxEnd("/userlogin", reqData);
} }
@@ -147,7 +133,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_MYFILES_LIST, action: 11309,
}; };
return this.postAuxEnd("/myfiles", postData); return this.postAuxEnd("/myfiles", postData);
} }
@@ -264,7 +250,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_ACCOUNT_USER_RECIPIENT, action: 11175,
}; };
return this.postAuxEnd("/recipients", postData); return this.postAuxEnd("/recipients", postData);
} }
@@ -287,7 +273,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
amount, amount,
action: apiConst.WRENCHBOARD_SMONEY_PROCFEE, action: 33025,
}; };
return this.postAuxEnd("/sendmoneyfee", postData); return this.postAuxEnd("/sendmoneyfee", postData);
} }
@@ -298,7 +284,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_STARTCREDIT, action: 11053,
...value, ...value,
}; };
return this.postAuxEnd("/startcredit", postData); return this.postAuxEnd("/startcredit", postData);
@@ -310,7 +296,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_USESAVEDCC, action: 11056,
...value, ...value,
}; };
return this.postAuxEnd("/payprevcard", postData); return this.postAuxEnd("/payprevcard", postData);
@@ -322,7 +308,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_ADNEWCC, action: 11054,
...value, ...value,
}; };
return this.postAuxEnd("/paynewcard", postData); return this.postAuxEnd("/paynewcard", postData);
@@ -335,7 +321,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: apiConst.WRENCHBOARD_FAMILY_SAMPLETASKS, action: 22027,
}; };
return this.postAuxEnd("/familysampletasks", postData); return this.postAuxEnd("/familysampletasks", postData);
} }
@@ -345,7 +331,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_CREATEJOB, action: 13010,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familysuggesttasks", postData); return this.postAuxEnd("/familysuggesttasks", postData);
@@ -357,7 +343,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_FAMILY_MANAGE, action: 22025,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familymanage", postData); return this.postAuxEnd("/familymanage", postData);
@@ -372,7 +358,7 @@ class usersService {
job_mode: "ACTIVE", job_mode: "ACTIVE",
limit: 30, limit: 30,
offset: 0, offset: 0,
action: apiConst.WRENCHBOARD_JOB_ACTIVE, action: 13008,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanageractive", postData); return this.postAuxEnd("/jobmanageractive", postData);
@@ -384,7 +370,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_CREATEJOB, action: 13010,
limit: 30, limit: 30,
offset: 0, offset: 0,
}; };
@@ -485,7 +471,7 @@ class usersService {
uuid: localStorage.getItem("uid"), uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_FAMILY_LIST, action: 22010,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/askresources", postData); return this.postAuxEnd("/askresources", postData);
@@ -523,7 +509,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_COUPON_MEMLIST, action: 85025,
}; };
return this.postAuxEnd("/couponhx", postData); return this.postAuxEnd("/couponhx", postData);
} }
@@ -535,7 +521,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_MOBILE_PURCHASEHX, action: 15049,
}; };
return this.postAuxEnd("/purchasehx", postData); return this.postAuxEnd("/purchasehx", postData);
} }
@@ -548,7 +534,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
offset: 1, offset: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_FAMILY_TRANSFERHX, action: 22011,
}; };
return this.postAuxEnd("/familyrewardhx", postData); return this.postAuxEnd("/familyrewardhx", postData);
} }
@@ -561,7 +547,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: apiConst.WRENCHBOARD_MOBILE_PAYMENTHX, action: 15046,
}; };
return this.postAuxEnd("/paymenthx", postData); return this.postAuxEnd("/paymenthx", postData);
} }
@@ -572,7 +558,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_SMONEY_MEMBER, action: 33020,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/sendmoney", postData); return this.postAuxEnd("/sendmoney", postData);
@@ -586,7 +572,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
offset: 1, offset: 1,
limit: 100, limit: 100,
action: apiConst.WRENCHBOARD_ACCOUNT_REFFERHX, action: 11064,
}; };
return this.postAuxEnd("/refferhx", postData); return this.postAuxEnd("/refferhx", postData);
} }
@@ -597,7 +583,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_MOBILE_UPDATEPROFILE, action: 5031,
...post, ...post,
}; };
return this.postAuxEnd("/updateprofile", postData); return this.postAuxEnd("/updateprofile", postData);
@@ -642,7 +628,6 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 0, page: 0,
limit: 100, limit: 100,
action: apiConst.WRENCHBOARD_FAMILY_UPDATE,
...reqdata, ...reqdata,
}; };
return this.postAuxEnd("/familyupdate", postData); return this.postAuxEnd("/familyupdate", postData);
@@ -678,10 +663,10 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: Number(localStorage.getItem("member_id")), member_id: Number(localStorage.getItem("member_id")),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_TOPUP_RESULT, action: 11061,
...post, ...post,
}; };
// console.log("topupresult", postData); console.log("topupresult", postData);
return this.postAuxEnd("/topupresult", postData); return this.postAuxEnd("/topupresult", postData);
} }
@@ -691,26 +676,17 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_SENDREFER, action: 11032,
...postData, ...postData,
}; };
return this.postAuxEnd("/sendreferral", reqData); return this.postAuxEnd("/sendreferral", reqData);
} }
StartResetPassword(postData) { StartResetPassword(reqData) {
var reqData = {
action: apiConst.WRENCHBOARD_RESET_PASSWORD,
...postData,
};
return this.postAuxEnd("/startresetpasword", reqData); return this.postAuxEnd("/startresetpasword", reqData);
} }
CompleteResetPassword(postData) { CompleteResetPassword(reqData) {
var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
action: apiConst.WRENCHBOARD_COMPLETE_PASSWORDRESET,
...postData,
};
return this.postAuxEnd("/stepresetpass", reqData); return this.postAuxEnd("/stepresetpass", reqData);
} }
@@ -719,7 +695,7 @@ class usersService {
uuid: localStorage.getItem("uid"), uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_COUPON_REDEEM, action: 85020,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/couponredeem", postData); return this.postAuxEnd("/couponredeem", postData);
@@ -736,7 +712,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_COUNTRY_BANKS, action: 11183,
...value, ...value,
}; };
return this.postAuxEnd("/countrybanks", postData); return this.postAuxEnd("/countrybanks", postData);
@@ -748,7 +724,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES, action: 11177,
}; };
return this.postAuxEnd("/accounttypes", postData); return this.postAuxEnd("/accounttypes", postData);
} }
@@ -760,7 +736,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
msg_type: "JOB", msg_type: "JOB",
action: apiConst.WRENCHBOARD_JOB_SEND_INTEREST, action: 13033,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/marketinterest", postData); return this.postAuxEnd("/marketinterest", postData);
@@ -772,7 +748,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
msg_type: "JOB", msg_type: "JOB",
action: apiConst.WRENCHBOARD_JOB_SEND_QUESTION, action: 13036,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/marketmessage", postData); return this.postAuxEnd("/marketmessage", postData);
@@ -784,7 +760,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_POSTAGREE, action: 13002,
}; };
return this.postAuxEnd("/jobmanageragree", postData); return this.postAuxEnd("/jobmanageragree", postData);
} }
@@ -795,7 +771,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_CREATEJOB, action: 13010,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagercreatejob", postData); return this.postAuxEnd("/jobmanagercreatejob", postData);
@@ -806,7 +782,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_CREATEJOB, action: 13010,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagerupdatejob", postData); return this.postAuxEnd("/jobmanagerupdatejob", postData);
@@ -818,7 +794,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
extend_days: 7, extend_days: 7,
action: apiConst.WRENCHBOARD_JOB_EXTEND_EXPIRE, action: 13041,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobextend", postData); return this.postAuxEnd("/pendingjobextend", postData);
@@ -830,7 +806,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
mode: 200, mode: 200,
action: apiConst.WRENCHBOARD_JOB_RESEND_MESSAGE, action: 13042,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobsendtome", postData); return this.postAuxEnd("/pendingjobsendtome", postData);
@@ -841,7 +817,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_CANCEL_OFFER, action: 13043,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobcancel", postData); return this.postAuxEnd("/pendingjobcancel", postData);
@@ -854,7 +830,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
action: apiConst.WRENCHBOARD_CONTRACT_MSGLIST, action: 14011,
offset: 0, offset: 0,
...reqData, ...reqData,
}; };
@@ -867,7 +843,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE, action: 14010,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/sendtaskmessage", postData); return this.postAuxEnd("/sendtaskmessage", postData);
@@ -879,7 +855,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE, action: 14010,
...reqData, ...reqData,
}; };
@@ -897,7 +873,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_DELETEJOB, action: 13011,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagerdeletejob", postData); return this.postAuxEnd("/jobmanagerdeletejob", postData);
@@ -906,7 +882,7 @@ class usersService {
verifyEmail(code) { verifyEmail(code) {
const reqData = { const reqData = {
verify_link: code, verify_link: code,
action: apiConst.WRENCHBOARD_VERIFY_PENDING_LINK, action: 11015,
}; };
return this.postAuxEnd("/verifysignuplink", reqData); return this.postAuxEnd("/verifysignuplink", reqData);
} }
@@ -917,7 +893,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_MOBILE_OFFERSRESP, action: 15012,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offersresponse", postData); return this.postAuxEnd("/offersresponse", postData);
@@ -929,7 +905,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_OFFER_INTLIST, action: 13024,
limit: 30, limit: 30,
offset: 0, offset: 0,
}; };
@@ -942,7 +918,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_OFFER_INTLIST, action: 13034,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offersinterestproc", postData); return this.postAuxEnd("/offersinterestproc", postData);
@@ -954,7 +930,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_CONTRACT_STATUS, action: 14015,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/activetaskstatus", postData); return this.postAuxEnd("/activetaskstatus", postData);
@@ -966,7 +942,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_CONTRACT_STATUS, action: 14015,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/activejobstatus", postData); return this.postAuxEnd("/activejobstatus", postData);
@@ -987,7 +963,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: apiConst.WRENCHBOARD_ACCOUNT_NOTIFICATIONS, action: 11205,
}; };
return this.postAuxEnd("/mynotifications", postData); return this.postAuxEnd("/mynotifications", postData);
} }
@@ -998,7 +974,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_CARDLIST, action: 11055,
}; };
return this.postAuxEnd("/paylistcard", postData); return this.postAuxEnd("/paylistcard", postData);
} }
@@ -1009,7 +985,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_MRKTINT_QUEST, action: 13037,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offerinterestmsg", postData); return this.postAuxEnd("/offerinterestmsg", postData);
@@ -1021,7 +997,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_MRKTINT_QUEST, action: 13037,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offerinterestlistmsg", postData); return this.postAuxEnd("/offerinterestlistmsg", postData);
@@ -1043,9 +1019,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 20, ...reqData,
offset: 0,
action: apiConst.WRENCHBOARD_FAMILY_LIST,
}; };
return this.postAuxEnd("/familylist", postData); return this.postAuxEnd("/familylist", postData);
} }
@@ -1056,7 +1030,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM, action: 13025,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/assigntask", postData); return this.postAuxEnd("/assigntask", postData);
@@ -1070,7 +1044,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM, action: 13010,
}; };
return this.postAuxEnd("/familysuggestlist", postData); return this.postAuxEnd("/familysuggestlist", postData);
} }
@@ -1081,7 +1055,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_PROFILE_RESETPASS, action: 11005,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/profilepasschange", postData); return this.postAuxEnd("/profilepasschange", postData);
@@ -1093,7 +1067,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_GETUSER_SETTINGS, action: 11059,
}; };
return this.postAuxEnd("/getaccsettings", postData); return this.postAuxEnd("/getaccsettings", postData);
} }
@@ -1104,7 +1078,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_SETTINGS, action: 11058,
...reqdata, ...reqdata,
}; };
return this.postAuxEnd("/setaccsettings", postData); return this.postAuxEnd("/setaccsettings", postData);
@@ -1116,7 +1090,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_USER_CARDREMV, action: 11057,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/payremcard", postData); return this.postAuxEnd("/payremcard", postData);
@@ -1129,7 +1103,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: apiConst.WRENCHBOARD_ACCOUNT_RECENTS, action: 11202,
}; };
return this.postAuxEnd("/recentactivities", postData); return this.postAuxEnd("/recentactivities", postData);
} }
@@ -1151,7 +1125,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_FAMILY_SGGESTSTATUS, action: 22026,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/suggeststatus", postData); return this.postAuxEnd("/suggeststatus", postData);
@@ -1163,7 +1137,7 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_FAMILY_WALLET, action: 22012,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familywallet", postData); return this.postAuxEnd("/familywallet", postData);
@@ -1191,39 +1165,40 @@ class usersService {
return this.postAuxEnd("/familytransfer", postData); return this.postAuxEnd("/familytransfer", postData);
} }
// FUNCTION GET JOB GROUP LIST
jobGroupList(reqData) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_JOBGROUPS,
...reqData,
};
return this.postAuxEnd("/jobgrouplist", postData);
}
// FUNCTION TO ADD JOB GROUP // FUNCTION GET JOB GROUP LIST
jobGroupAdd(reqData) { jobGroupList(reqData) {
var postData = { var postData = {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
...reqData, action: 13045,
}; ...reqData,
return this.postAuxEnd("/jobgroupadd", postData); };
} return this.postAuxEnd("/jobgrouplist", postData);
}
// FUNCTION TO ADD JOB GROUP MEMBER // FUNCTION TO ADD JOB GROUP
groupMemberAdd(reqData) { jobGroupAdd(reqData) {
var postData = { var postData = {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
...reqData, ...reqData,
}; };
return this.postAuxEnd("/groupmemberadd", postData); return this.postAuxEnd("/jobgroupadd", postData);
} }
// FUNCTION TO ADD JOB GROUP MEMBER
groupMemberAdd(reqData) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
...reqData,
};
return this.postAuxEnd("/groupmemberadd", postData);
}
/* /*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)