Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d2a406563a | |||
| d509fb024c | |||
| 4acae3401d | |||
| 05a1dc3663 | |||
| 63eb8b9729 | |||
| a474d42d85 | |||
| dcb820590d | |||
| 614c376c92 | |||
| b589277678 | |||
| 00a70f3574 |
@@ -72,7 +72,8 @@ REACT_APP_APPLE_SOCIAL_LOGIN=0
|
|||||||
REACT_APP_LINKEDIN_SOCIAL_LOGIN=0
|
REACT_APP_LINKEDIN_SOCIAL_LOGIN=0
|
||||||
|
|
||||||
#File Handling
|
#File Handling
|
||||||
REACT_APP_MAX_FILE_SIZE=1000000
|
REACT_APP_MAX_FILE_SIZE=1048576
|
||||||
|
REACT_APP_MAX_VIDEO_FILE_SIZE=31457280
|
||||||
REACT_APP_TOTAL_NUM_FILE=4
|
REACT_APP_TOTAL_NUM_FILE=4
|
||||||
|
|
||||||
#Auth Text(s)
|
#Auth Text(s)
|
||||||
|
|||||||
+3
-1
@@ -43,7 +43,9 @@ REACT_APP_GOOGLE_CLIENT_SECRET=aozK_2G8UjaCmLgPPkv9abIm
|
|||||||
REACT_APP_GOOGLE_CLIENT_SCOPE="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
|
REACT_APP_GOOGLE_CLIENT_SCOPE="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
|
||||||
REACT_APP_GOOGLE_REDIRECT_URL=http://localhost:9082/login/auth/
|
REACT_APP_GOOGLE_REDIRECT_URL=http://localhost:9082/login/auth/
|
||||||
|
|
||||||
REACT_APP_MAX_FILE_SIZE=1000000
|
#File Handling
|
||||||
|
REACT_APP_MAX_FILE_SIZE=1048576
|
||||||
|
REACT_APP_MAX_VIDEO_FILE_SIZE=31457280
|
||||||
REACT_APP_TOTAL_NUM_FILE=4
|
REACT_APP_TOTAL_NUM_FILE=4
|
||||||
|
|
||||||
REACT_APP_LOGOUT_TEXT="Sign Out"
|
REACT_APP_LOGOUT_TEXT="Sign Out"
|
||||||
|
|||||||
+3
-1
@@ -50,7 +50,9 @@ REACT_APP_FACEBOOK_REDIRECT_URL="https://users.wrenchboard.com/login/auth/flogin
|
|||||||
|
|
||||||
DISABLE_ESLINT_PLUGIN=true
|
DISABLE_ESLINT_PLUGIN=true
|
||||||
|
|
||||||
REACT_APP_MAX_FILE_SIZE=1000000
|
#File Handling
|
||||||
|
REACT_APP_MAX_FILE_SIZE=1048576
|
||||||
|
REACT_APP_MAX_VIDEO_FILE_SIZE=31457280
|
||||||
REACT_APP_TOTAL_NUM_FILE=4
|
REACT_APP_TOTAL_NUM_FILE=4
|
||||||
|
|
||||||
REACT_APP_LOGOUT_TEXT="Sign Out"
|
REACT_APP_LOGOUT_TEXT="Sign Out"
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ export default function Login() {
|
|||||||
localStorage.setItem("member_id", `${res.data.member_id}`);
|
localStorage.setItem("member_id", `${res.data.member_id}`);
|
||||||
localStorage.setItem("uid", `${res.data.uid}`);
|
localStorage.setItem("uid", `${res.data.uid}`);
|
||||||
localStorage.setItem("session_token", `${res.data.session}`);
|
localStorage.setItem("session_token", `${res.data.session}`);
|
||||||
localStorage.setItem("wallet_status", `${res.data.wallet_status}`);
|
localStorage.setItem("wallet_available_status", `${res.data.wallet_available_status}`);
|
||||||
if (res.data?.account_type == "FAMILY") {
|
if (res.data?.account_type == "FAMILY") {
|
||||||
sessionStorage.setItem("family_uid", res.data?.family_uid);
|
sessionStorage.setItem("family_uid", res.data?.family_uid);
|
||||||
sessionStorage.setItem("parent_uid", res.data?.parent_uid);
|
sessionStorage.setItem("parent_uid", res.data?.parent_uid);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export default function AvailableJobsCard({
|
|||||||
<>
|
<>
|
||||||
{contentDisplay == "grid" ? (
|
{contentDisplay == "grid" ? (
|
||||||
<div
|
<div
|
||||||
className={`card-style-two w-full h-[426px] p-[20px] bg-white dark:bg-dark-white rounded-2xl section-shadow ${
|
className={`card-style-two w-full p-[10px] bg-white dark:bg-dark-white rounded-2xl section-shadow ${
|
||||||
className || ""
|
className || ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
@@ -42,7 +42,7 @@ export default function AvailableJobsCard({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
setMarketPopUp({ show: true, data: datas });
|
setMarketPopUp({ show: true, data: datas });
|
||||||
}}
|
}}
|
||||||
className="flex flex-col justify-between w-full h-full"
|
className="flex flex-col gap-2 justify-between w-full h-full"
|
||||||
>
|
>
|
||||||
<div className='w-full flex items-center gap-4'>
|
<div className='w-full flex items-center gap-4'>
|
||||||
<div className='min-w-[60px] min-h-[60px] max-w-[60px] max-h-[60px] rounded-full overflow-hidden'>
|
<div className='min-w-[60px] min-h-[60px] max-w-[60px] max-h-[60px] rounded-full overflow-hidden'>
|
||||||
@@ -64,7 +64,7 @@ export default function AvailableJobsCard({
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-[1px] bg-light-purple dark:bg-dark-light-purple h-7"></div>
|
<div className="w-[1px] bg-light-purple dark:bg-dark-light-purple h-7"></div>
|
||||||
<div className="created-by flex space-x-2 items-center flex-row-reverse">
|
<div className="created-by flex space-x-2 items-center flex-row-reverse">
|
||||||
<div>
|
<div>
|
||||||
<p className="text-thin-light-gray text-sm leading-3 text-right">
|
<p className="text-thin-light-gray text-sm leading-3 text-right">
|
||||||
@@ -80,19 +80,18 @@ export default function AvailableJobsCard({
|
|||||||
</div>
|
</div>
|
||||||
<div className="thumbnail-area w-full">
|
<div className="thumbnail-area w-full">
|
||||||
<div
|
<div
|
||||||
className="w-full h-[236px] p-6 rounded-xl overflow-hidden bg-center bg-cover bg-no-repeat"
|
className="w-full h-[236px] rounded-xl overflow-y-auto bg-center bg-cover bg-no-repeat"
|
||||||
// style={{
|
// style={{
|
||||||
// backgroundImage: `url('${image}')`,
|
// backgroundImage: `url('${image}')`,
|
||||||
// }}
|
// }}
|
||||||
>
|
>
|
||||||
<div className="flex justify-center bg-slate-100 p-2 rounded-md">
|
<div className="flex flex-col h-full bg-slate-100 p-2 rounded-md">
|
||||||
{datas.description}
|
<p>{datas.description}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="details-area">
|
<div className="details-area">
|
||||||
<div className="product-two-options flex justify-between mb-5 relative"></div>
|
{/* <div className="product-two-options flex justify-between mb-5 relative"></div> */}
|
||||||
|
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<div className="flex items-center space-x-2">
|
<div className="flex items-center space-x-2">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default function MainSection({
|
|||||||
);
|
);
|
||||||
const [tab, setTab] = useState(Object.keys(marketCategories)[0]);
|
const [tab, setTab] = useState(Object.keys(marketCategories)[0]);
|
||||||
|
|
||||||
let [contentDisplay, setContentDisplay] = useState("list"); // STATE TO HOLD LIST VIEW STYLE
|
let [contentDisplay, setContentDisplay] = useState("grid"); // STATE TO HOLD LIST VIEW STYLE
|
||||||
|
|
||||||
// Convert to array in order to map
|
// Convert to array in order to map
|
||||||
const mappedArray = Object.entries(marketCategories).map(([key, value]) => {
|
const mappedArray = Object.entries(marketCategories).map(([key, value]) => {
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
|||||||
<div className="mx-auto bg-[#f1f8ff] dark:bg-[#C2C8D3] px-4 rounded-md md:min-h-[420px] flex flex-col justify-between">
|
<div className="mx-auto bg-[#f1f8ff] dark:bg-[#C2C8D3] px-4 rounded-md md:min-h-[420px] flex flex-col justify-between">
|
||||||
<div className="w-full flex flex-col justify-center pb-4 gap-2">
|
<div className="w-full flex flex-col justify-center pb-4 gap-2">
|
||||||
<p className="job-label w-full">
|
<p className="job-label w-full">
|
||||||
Interested in the task?
|
Interested?
|
||||||
</p>
|
</p>
|
||||||
<hr />
|
<hr />
|
||||||
<button
|
<button
|
||||||
@@ -262,9 +262,8 @@ const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
|||||||
>
|
>
|
||||||
{" "}
|
{" "}
|
||||||
<div className="w-full flex flex-col justify-between gap-2">
|
<div className="w-full flex flex-col justify-between gap-2">
|
||||||
<span>Send</span>
|
<span>Notify</span>
|
||||||
<span>Interest</span>
|
<span>Owner</span>
|
||||||
<span>Request</span>
|
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -75,7 +75,19 @@ function ActiveJobs(props) {
|
|||||||
// IF NO FILE SELECTED RETURN
|
// IF NO FILE SELECTED RETURN
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (files[0].size > Number(process.env.REACT_APP_MAX_FILE_SIZE)) {
|
let fileType = files[0].type.split('/')[0].toLowerCase()
|
||||||
|
if (fileType == 'video' && files[0].size > Number(process.env.REACT_APP_MAX_VIDEO_FILE_SIZE)) { // return if video file is more than 30mb
|
||||||
|
setRequestStatus({
|
||||||
|
loading: false,
|
||||||
|
status: false,
|
||||||
|
message: "File must be <= 30mb",
|
||||||
|
});
|
||||||
|
setTimeout(() => {
|
||||||
|
setRequestStatus({ loading: false, status: false, message: "" });
|
||||||
|
}, 5000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (files[0].size > Number(process.env.REACT_APP_MAX_FILE_SIZE)) { // return if other files is more than 1mb
|
||||||
setRequestStatus({
|
setRequestStatus({
|
||||||
loading: false,
|
loading: false,
|
||||||
status: false,
|
status: false,
|
||||||
@@ -100,7 +112,8 @@ function ActiveJobs(props) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// INCLUDE FILE IF NO ERROR
|
// INCLUDE FILE IF NO ERROR
|
||||||
setFilesToSend((prev) => [...prev, files[0]]);
|
// setFilesToSend((prev) => [...prev, files[0]]); //for sending multiple file if need be
|
||||||
|
setFilesToSend([files[0]])
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION TO CLEAR ALL TYPED MESSAGE OR FILES
|
// FUNCTION TO CLEAR ALL TYPED MESSAGE OR FILES
|
||||||
@@ -189,61 +202,46 @@ function ActiveJobs(props) {
|
|||||||
setRequestStatus({ loading: false, status: false, message: "" });
|
setRequestStatus({ loading: false, status: false, message: "" });
|
||||||
}, 5000);
|
}, 5000);
|
||||||
}
|
}
|
||||||
|
// const fileToBase64 = async () => {
|
||||||
|
// // Converts file data to base64 string
|
||||||
|
// try {
|
||||||
|
// const base64String = await convertFileToBase64(filesToSend[i]);
|
||||||
|
// return base64String;
|
||||||
|
// } catch (error) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
for (let i = 0; i <= filesToSend.length - 1; i++) {
|
let reqData = {
|
||||||
// Loops through files to send array and trigger upload API call
|
// file_name: filesToSend[i].name,
|
||||||
|
// file_size: filesToSend[i].size,
|
||||||
|
// file_type: "image/png",
|
||||||
|
// file_data: await fileToBase64(),
|
||||||
|
msg_type: "FILE",
|
||||||
|
contract: props.details.contract,
|
||||||
|
file: filesToSend[0],
|
||||||
|
};
|
||||||
|
|
||||||
const fileToBase64 = async () => {
|
ApiCall.sendFilesNew(reqData)
|
||||||
// Converts file data to base64 string
|
.then((res) => {
|
||||||
try {
|
if(res.status != 200 || res.data.internal_return < 0){
|
||||||
const base64String = await convertFileToBase64(filesToSend[i]);
|
setRequestStatus({loading: false, status: false, message: 'File could not be sent, try again later'})
|
||||||
return base64String;
|
return
|
||||||
} catch (error) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
};
|
setRequestStatus({loading: false, status: true, message: 'File Uploaded Successfully'})
|
||||||
|
// props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
||||||
// if(await !fileToBase64()){
|
// setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
||||||
// return
|
})
|
||||||
// }
|
.catch((error) => {
|
||||||
|
setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'})
|
||||||
let reqData = {
|
})
|
||||||
file_name: filesToSend[i].name,
|
.finally(() => {
|
||||||
file_size: filesToSend[i].size,
|
setFilesToSend([]); // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
||||||
file_type: "image/png",
|
props.reloadActiveJobList((prev) => !prev); // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
||||||
file_data: await fileToBase64(),
|
setTimeout(() => {
|
||||||
msg_type: "FILE",
|
setRequestStatus({ loading: false, status: false, message: "" });
|
||||||
contract: props.details.contract,
|
}, 5000);
|
||||||
};
|
});
|
||||||
|
|
||||||
ApiCall.sendFiles(reqData)
|
|
||||||
.then((res) => {
|
|
||||||
// if(res.status != 200 || res.data.internal_return < 0){
|
|
||||||
// setRequestStatus({loading: false, status: false, message: 'Files(s) could not be sent, try again later'})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// setRequestStatus({loading: false, status: true, message: 'File(s) Uploaded Successfully'})
|
|
||||||
// props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
|
||||||
// setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
// setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'})
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
if (i == filesToSend.length - 1) {
|
|
||||||
setRequestStatus({
|
|
||||||
loading: false,
|
|
||||||
status: true,
|
|
||||||
message: "File(s) Uploaded Successfully",
|
|
||||||
});
|
|
||||||
setFilesToSend([]); // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
|
||||||
props.reloadActiveJobList((prev) => !prev); // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
|
||||||
setTimeout(() => {
|
|
||||||
setRequestStatus({ loading: false, status: false, message: "" });
|
|
||||||
}, 5000);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION TO CHECK IF TASK PASS DUE IS REACHED
|
// FUNCTION TO CHECK IF TASK PASS DUE IS REACHED
|
||||||
@@ -445,7 +443,7 @@ function ActiveJobs(props) {
|
|||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
id="file"
|
id="file"
|
||||||
accept="image/*"
|
accept="image/*,video/*"
|
||||||
style={{ display: "none" }}
|
style={{ display: "none" }}
|
||||||
onChange={handleFileChange}
|
onChange={handleFileChange}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -69,7 +69,19 @@ function ActiveJobsMedia(props) {
|
|||||||
// IF NO FILE SELECTED RETURN
|
// IF NO FILE SELECTED RETURN
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (files[0].size > Number(process.env.REACT_APP_MAX_FILE_SIZE)) {
|
let fileType = files[0].type.split('/')[0].toLowerCase()
|
||||||
|
if (fileType == 'video' && files[0].size > Number(process.env.REACT_APP_MAX_VIDEO_FILE_SIZE)) { // return if video file is more than 30mb
|
||||||
|
setRequestStatus({
|
||||||
|
loading: false,
|
||||||
|
status: false,
|
||||||
|
message: "File must be <= 30mb",
|
||||||
|
});
|
||||||
|
setTimeout(() => {
|
||||||
|
setRequestStatus({ loading: false, status: false, message: "" });
|
||||||
|
}, 5000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (files[0].size > Number(process.env.REACT_APP_MAX_FILE_SIZE)) { // return if other files is more than 1mb
|
||||||
setRequestStatus({
|
setRequestStatus({
|
||||||
loading: false,
|
loading: false,
|
||||||
status: false,
|
status: false,
|
||||||
@@ -94,7 +106,8 @@ function ActiveJobsMedia(props) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// INCLUDE FILE IF NO ERROR
|
// INCLUDE FILE IF NO ERROR
|
||||||
setFilesToSend((prev) => [...prev, files[0]]);
|
// setFilesToSend((prev) => [...prev, files[0]]); //for sending multiple file if need be
|
||||||
|
setFilesToSend([files[0]])
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION TO CLEAR ALL TYPED MESSAGE OR FILES
|
// FUNCTION TO CLEAR ALL TYPED MESSAGE OR FILES
|
||||||
@@ -184,60 +197,42 @@ function ActiveJobsMedia(props) {
|
|||||||
}, 5000);
|
}, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i <= filesToSend.length - 1; i++) {
|
// const fileToBase64 = async () => {
|
||||||
// Loops through files to send array and trigger upload API call
|
// // Converts file data to base64 string
|
||||||
|
// try {
|
||||||
|
// const base64String = await convertFileToBase64(filesToSend[i]);
|
||||||
|
// return base64String;
|
||||||
|
// } catch (error) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
const fileToBase64 = async () => {
|
let reqData = {
|
||||||
// Converts file data to base64 string
|
msg_type: "FILE",
|
||||||
try {
|
contract: props.details.contract,
|
||||||
const base64String = await convertFileToBase64(filesToSend[i]);
|
file: filesToSend[0],
|
||||||
return base64String;
|
};
|
||||||
} catch (error) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// if(await !fileToBase64()){
|
ApiCall.sendFilesNew(reqData)
|
||||||
// return
|
.then((res) => {
|
||||||
// }
|
if(res.status != 200 || res.data.internal_return < 0){
|
||||||
|
setRequestStatus({loading: false, status: false, message: 'File could not be sent, try again later'})
|
||||||
let reqData = {
|
return
|
||||||
file_name: filesToSend[i].name,
|
}
|
||||||
file_size: filesToSend[i].size,
|
setRequestStatus({loading: false, status: true, message: 'File Uploaded Successfully'})
|
||||||
file_type: "image/png",
|
// props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
||||||
file_data: await fileToBase64(),
|
// setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
||||||
msg_type: "FILE",
|
})
|
||||||
contract: props.details.contract,
|
.catch((error) => {
|
||||||
};
|
setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'})
|
||||||
|
})
|
||||||
ApiCall.sendFiles(reqData)
|
.finally(() => {
|
||||||
.then((res) => {
|
setFilesToSend([]); // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
||||||
// if(res.status != 200 || res.data.internal_return < 0){
|
props.reloadActiveJobList((prev) => !prev); // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
||||||
// setRequestStatus({loading: false, status: false, message: 'Files(s) could not be sent, try again later'})
|
setTimeout(() => {
|
||||||
// return
|
setRequestStatus({ loading: false, status: false, message: "" });
|
||||||
// }
|
}, 5000);
|
||||||
// setRequestStatus({loading: false, status: true, message: 'File(s) Uploaded Successfully'})
|
});
|
||||||
// props.reloadActiveJobList(prev => !prev) // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
|
||||||
// setFilesToSend([]) // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
// setRequestStatus({loading: false, status: false, message: 'Opps! something went wrong'})
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
if (i == filesToSend.length - 1) {
|
|
||||||
setRequestStatus({
|
|
||||||
loading: false,
|
|
||||||
status: true,
|
|
||||||
message: "File(s) Uploaded Successfully",
|
|
||||||
});
|
|
||||||
setFilesToSend([]); // SETS FILES TO SEND TO SEND BACK TO EMPTY ARRAY
|
|
||||||
props.reloadActiveJobList((prev) => !prev); // MAKES ACTIVE JOB MESSAGE LIST TO RELOAD
|
|
||||||
setTimeout(() => {
|
|
||||||
setRequestStatus({ loading: false, status: false, message: "" });
|
|
||||||
}, 5000);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION TO CHECK IF TASK PASS DUE IS REACHED
|
// FUNCTION TO CHECK IF TASK PASS DUE IS REACHED
|
||||||
@@ -437,7 +432,7 @@ function ActiveJobsMedia(props) {
|
|||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
id="file"
|
id="file"
|
||||||
accept="image/*"
|
accept="image/*,video/*"
|
||||||
style={{ display: "none" }}
|
style={{ display: "none" }}
|
||||||
onChange={handleFileChange}
|
onChange={handleFileChange}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -60,13 +60,6 @@ const WalletRoutes = () => {
|
|||||||
getPaymentHistory();
|
getPaymentHistory();
|
||||||
}, [walletTable]);
|
}, [walletTable]);
|
||||||
|
|
||||||
console.log(
|
|
||||||
"Testing all country: ",
|
|
||||||
allCountries,
|
|
||||||
"Testing wallet: ",
|
|
||||||
walletDetails
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout>
|
||||||
<Suspense fallback={<LoadingSpinner size="16" color="sky-blue" />}>
|
<Suspense fallback={<LoadingSpinner size="16" color="sky-blue" />}>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { useSelector } from "react-redux";
|
|||||||
|
|
||||||
export default function WalletHeader(props) {
|
export default function WalletHeader(props) {
|
||||||
|
|
||||||
const {userDetails: { account_type, wallet_status }} = useSelector((state) => state?.userDetails);
|
const {userDetails: { account_type, wallet_available_status }} = useSelector((state) => state?.userDetails);
|
||||||
// debugger;
|
// debugger;
|
||||||
//props.myWalletList.result_list
|
//props.myWalletList.result_list
|
||||||
let { pathname } = useLocation();
|
let { pathname } = useLocation();
|
||||||
@@ -22,7 +22,7 @@ export default function WalletHeader(props) {
|
|||||||
props.setBalanceDropdown.toggle();
|
props.setBalanceDropdown.toggle();
|
||||||
else navigate("/my-wallet", { replace: true });
|
else navigate("/my-wallet", { replace: true });
|
||||||
}
|
}
|
||||||
console.log('props.myWalletList', wallet_status)
|
// console.log('props.myWalletList', wallet_available_status)
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{account_type == 'FULL' ?
|
{account_type == 'FULL' ?
|
||||||
@@ -50,7 +50,8 @@ export default function WalletHeader(props) {
|
|||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<div className="content px-7 pb-7">
|
<div className="content px-7 pb-7">
|
||||||
{(wallet_status == '1' || localStorage.getItem('wallet_status')== '1') ?
|
{/* wallet_available_status == 'WALLET_AVAILABLE' */}
|
||||||
|
{(wallet_available_status == 'WALLET_AVAILABLE' || localStorage.getItem('wallet_available_status')== 'WALLET_AVAILABLE') ?
|
||||||
<ul>
|
<ul>
|
||||||
{props.myWalletList &&
|
{props.myWalletList &&
|
||||||
props.myWalletList?.length > 0 &&
|
props.myWalletList?.length > 0 &&
|
||||||
@@ -185,7 +186,7 @@ export default function WalletHeader(props) {
|
|||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
{(wallet_status == '1' || localStorage.getItem('wallet_status')== '1') &&
|
{(wallet_available_status == 'WALLET_AVAILABLE' || localStorage.getItem('wallet_available_status')== 'WALLET_AVAILABLE') &&
|
||||||
<div className="add-money-btn flex justify-center items-center mt-3">
|
<div className="add-money-btn flex justify-center items-center mt-3">
|
||||||
{/* <button
|
{/* <button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ export default function MobileSidebar({
|
|||||||
const marketData = jobLists?.result_list;
|
const marketData = jobLists?.result_list;
|
||||||
let noOfJobs = marketData?.length <= 0 ? "0" : marketData?.length;
|
let noOfJobs = marketData?.length <= 0 ? "0" : marketData?.length;
|
||||||
|
|
||||||
|
let walletExist = userDetails?.wallet_available_status == 'WALLET_AVAILABLE' || localStorage.getItem('wallet_available_status')== 'WALLET_AVAILABLE'
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full h-full">
|
<div className="w-full h-full">
|
||||||
{/* logo-area */}
|
{/* logo-area */}
|
||||||
@@ -138,7 +140,7 @@ export default function MobileSidebar({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{(userDetails?.account_type !== "FAMILY" && userDetails?.wallet_status) && (
|
{(userDetails?.account_type !== "FAMILY" && walletExist) && (
|
||||||
<>
|
<>
|
||||||
{!userDetails?.post_jobs ? (
|
{!userDetails?.post_jobs ? (
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ export default function RightSideBar({ myJobList }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const { userDetails } = useSelector((state) => state?.userDetails);
|
const { userDetails } = useSelector((state) => state?.userDetails);
|
||||||
|
let walletExist = userDetails?.wallet_available_status == 'WALLET_AVAILABLE' || localStorage.getItem('wallet_available_status')== 'WALLET_AVAILABLE'
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -280,7 +281,7 @@ export default function RightSideBar({ myJobList }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/*JOB LINKS*/}
|
{/*JOB LINKS*/}
|
||||||
{(userDetails?.account_type !== "FAMILY" && userDetails?.wallet_status) &&
|
{(userDetails?.account_type !== "FAMILY" && walletExist) &&
|
||||||
myJobList?.data?.result_list?.length > 0 && (
|
myJobList?.data?.result_list?.length > 0 && (
|
||||||
<div className="top-platform mt-6 bg-white dark:bg-dark-white rounded-2xl py-8 w-full 2xl:mb-10 2xl:border-none border ">
|
<div className="top-platform mt-6 bg-white dark:bg-dark-white rounded-2xl py-8 w-full 2xl:mb-10 2xl:border-none border ">
|
||||||
{/* heading */}
|
{/* heading */}
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ export default function Sidebar({
|
|||||||
const marketData = jobLists?.result_list;
|
const marketData = jobLists?.result_list;
|
||||||
let noOfJobs = marketData?.length <= 0 ? "0" : marketData?.length;
|
let noOfJobs = marketData?.length <= 0 ? "0" : marketData?.length;
|
||||||
|
|
||||||
|
let walletExist = userDetails?.wallet_available_status == 'WALLET_AVAILABLE' || localStorage.getItem('wallet_available_status')== 'WALLET_AVAILABLE'
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const title = document.querySelectorAll(".menu-setting-items .heading");
|
const title = document.querySelectorAll(".menu-setting-items .heading");
|
||||||
if (sidebar) {
|
if (sidebar) {
|
||||||
@@ -157,7 +159,7 @@ export default function Sidebar({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{(userDetails?.account_type !== "FAMILY" && userDetails?.wallet_status) && (
|
{(userDetails?.account_type !== "FAMILY" && walletExist) && (
|
||||||
<>
|
<>
|
||||||
{!userDetails?.post_jobs ? (
|
{!userDetails?.post_jobs ? (
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -908,6 +908,24 @@ class usersService {
|
|||||||
return this.postAuxEnd("/uploads", postData);
|
return this.postAuxEnd("/uploads", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION FOR NEW FILE UPLOAD
|
||||||
|
sendFilesNew(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE,
|
||||||
|
...reqData,
|
||||||
|
};
|
||||||
|
|
||||||
|
const formData = new FormData();
|
||||||
|
for (let data in postData) {
|
||||||
|
formData.append(data, postData[data]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.postAuxEnd("/upload/contract", formData, true);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION TO UPLOAD RESOURCE FILES
|
// FUNCTION TO UPLOAD RESOURCE FILES
|
||||||
uploadFile(reqData) {
|
uploadFile(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
|
import {useEffect} from 'react'
|
||||||
import WalletRoutes from "../components/MyWallet/Wallet";
|
import WalletRoutes from "../components/MyWallet/Wallet";
|
||||||
|
import { useSelector } from "react-redux";
|
||||||
|
import {useNavigate} from 'react-router-dom'
|
||||||
|
|
||||||
export default function MyWalletPage() {
|
export default function MyWalletPage() {
|
||||||
|
const {userDetails: { account_type, wallet_available_status }} = useSelector((state) => state?.userDetails);
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
let walletExist = wallet_available_status || localStorage.getItem('wallet_available_status')
|
||||||
|
console.log(walletExist)
|
||||||
|
if(account_type == 'FULL' && walletExist != 'WALLET_AVAILABLE'){
|
||||||
|
navigate('/', {replace: true})
|
||||||
|
}
|
||||||
|
},[])
|
||||||
|
|
||||||
return <WalletRoutes />;
|
return <WalletRoutes />;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user