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);
+105 -124
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> :
) : ( <ForgetPwdResponse
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7"> title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'}
<ForgetPwdResponse 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'
title={"Forget Password"} }
message={ type={linkSuccess}
"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 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>
+105 -124
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> :
) : ( <ForgetPwdResponse
<div className="w-11/12 sm:max-w-[500px] title-area flex flex-col justify-center items-center relative text-center mb-7"> title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'}
<ForgetPwdResponse 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'
title={"Forget Password"} }
message={ type={linkSuccess}
"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 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 &&
<Formik
{!startTransfer.loading && ( initialValues={initialValues}
<Formik validationSchema={validationSchema}
initialValues={initialValues} onSubmit={handleAddFund}
validationSchema={validationSchema} >
onSubmit={handleAddFund} {(props) => (
> <Form className="w-full">
{(props) => ( <div className="flex flex-col-reverse sm:flex-row">
<Form className="w-full"> <div className="fields w-full">
<div className="flex flex-col-reverse sm:flex-row"> {/* AMOUNT */}
<div className="fields w-full"> <div className="field w-full mb-[0.5rem]">
{/* AMOUNT */} <InputCom
<div className="field w-full mb-[0.5rem]"> placeholder="0"
<InputCom label={`Amount (${startTransfer?.data?.currency})`}
placeholder="0" name="amount"
label={`Amount (${startTransfer?.data?.currency})`} type="text"
name="amount" parentClass="flex items-center gap-1 w-full"
type="text" labelClass="flex-[0.3] mb-0"
parentClass="flex items-center gap-1 w-full" inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${props.errors.amount && props.touched.amount ? 'border border-red-500' : ''}`}
labelClass="flex-[0.3] mb-0" fieldClass="px-2 text-right"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${ value={props.values.amount}
props.errors.amount && props.touched.amount inputHandler={props.handleChange}
? "border border-red-500" />
: ""
}`}
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);
+97 -122
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,10 +855,10 @@ 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,
}; };
const formData = new FormData(); const formData = new FormData();
for (let data in postData) { for (let data in postData) {
formData.append(data, postData[data]); formData.append(data, postData[data]);
@@ -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)