LNP
LNP
import "./LandingPageNew.scss";
{ inputFirstName: false },
{ inputLastName: false },
{ inputMiddleName: false }
);
kycStatus: '',
eddStatus: '',
fatcaStatus: '',
miscStatus: '',
miscStatusReason: '',
onboardingStatus:'',
xddStatus: '',
screeningStatus:'',
accountDocuments:[]
});
let reqObj = {
ipAddress: ip,
};
// SumSub ePOR, SumSub eVI, Au10Tix, Manual, 'AU10TIX, SUMSUB EPOR, SUMSUB EVI,
DEUTSCHEPOST, MANUAL'
othersCheck: "Manual",
};
const docsAcceptedFundNotAllowed =
const docFirstName =
user.userDocumentVerification?.firstName &&
? user.userDocumentVerification?.firstName
: '';
const docMiddleName =
user.userDocumentVerification?.middleName &&
? user.userDocumentVerification?.middleName
: '';
const docLastName =
user.userDocumentVerification?.lastName &&
? user.userDocumentVerification?.lastName
: '';
? moment(user.userDocumentVerification?.dateOfBirth).format("DD/MM/YYYY")
: '';
? moment(new Date(user.dob)).format("DD/MM/YYYY")
: '';
);
if (resultData.length > 0) {
return true;
return false;
};
const config = {
headers: {
},
};
const idStatusArr = [
"COMPLETE",
"MISSING ID",
"MISSING ID REVIEW",
];
const porStatusArr = [
"COMPLETE",
"MISSING POR",
];
const sowStatusArr = [
"COMPLETE",
"MISSING SOW",
"MISSING SOF",
];
const sofStatusArr = [
"COMPLETE",
"MISSING SOW",
"MISSING SOF",
"MISSING SOW AND SOF",
];
let userStatusInfo = {
kycStatus: null,
eddStatus: null,
fatcaStatus: null,
miscStatus: null,
fundingStatus: null,
xddStatus: null,
preCddEligible: null,
isCubanNational: false,
isZulu: false,
};
const documentVerification = {
userDocumentVerification: {
id: '',
documentType: '',
fullNameStatus: '',
dateOfBirthStatus: '',
nameAndDateOfBirthinterpretedResult: '',
documentStatus: identityStatus,
fullName: '',
docFirstName: '',
docLastName: '',
docMiddleName: '',
docDOB: '',
},
};
const {
checkResult,
fullNameSimilarity,
fullNameStatus,
firstName,
lastName,
middleName,
dateOfBirthStatus,
retryAttempt
} = securemeDocData;
console.log({securemeDocData})
// setIsSuccessFlag(true);
setIdentityStatus(statusName);
return;
return;
}
}
if (
) {
setIsNameMismatch(true);
// updateMismatchStatus(dataObj);
setIdentityStatus('Alert');
} else if (
) {
setIsBothMismatch(true);
// updateMismatchStatus(dataObj);
setIdentityStatus('Alert');
} else if (
) {
setIsNameMismatch(true);
setEnableTextInput(true);
// updateMismatchStatus(dataObj);
setIdentityStatus('Alert');
} else if (
) {
setIsBothMismatch(true);
setEnableTextInput(true);
// updateMismatchStatus(dataObj);
setIdentityStatus('Alert');
} else if (
) {
setIsDOBMismatch(true);
// updateMismatchStatus(dataObj);
setIdentityStatus('Alert');
} else if(
) {
setIsNameMismatch(true);
setIsBothMismatch(false);
setIsDOBMismatch(false);
setIdentityStatus('Verified');
} else if(
) {
setIsBothMismatch(true);
setIsNameMismatch(false);
setIsDOBMismatch(false);
setIdentityStatus('Verified');
} else if(
) {
//update dob
setIsDOBMismatch(true);
setIsNameMismatch(false);
setIsBothMismatch(false);
setIdentityStatus('Verified');
} else {
if (statusNameArray.includes(statusName.toUpperCase())) {
// setIsSuccessFlag(true);
setIdentityStatus("Verified");
} else{
setIdentityStatus(statusName);
// setIdentityStatus("In Review");
} else {
// setActualStatuses(true);
}
}
};
setIdentityStatus("Verified");
setAddressStatus("Verified");
setIdentityStatus("Required");
setIdentityStatus("Alert");
} else {
setIdentityStatus("In Review");
setIdentityStatus("In Review");
setAddressStatus("Required");
setAddressStatus("In Review");
setAddressStatus("Required");
setIdentityStatus("In Review");
setAddressStatus("Required");
setIdentityStatus("In Review");
setAddressStatus("In Review");
setIdentityStatus("Required");
setAddressStatus("In Review");
setSowStatus("Verified");
setSofStatus("Verified");
else
if (isEntryPresent("SOW")) {
setSowStatus("In Review");
if (isEntryPresent("SOF")) {
setSofStatus("In Review");
}
else if (eddStatus === 'MISSING SOF') {
setSowStatus("Verified");
if (isEntryPresent("SOF")) {
setSofStatus("In Review");
} else {
setSofStatus("Required");
setSofStatus("Verified");
if (isEntryPresent("SOW")) {
setSowStatus("In Review");
} else {
setSowStatus("Required");
if (miscStatusReason?.includes("w8ben")) {
setForeignStatus("In Review");
else
setForeignStatus("Accepted");
else
{
if (fatcaStatus === 'REVIEW COMPLETED') {
setForeignStatus("Accepted");
if (isEntryPresent('Foreign Status')) {
setForeignStatus("In Review");
} else {
setForeignStatus("Required");
if (isEntryPresent('CUBA')) {
setCubaStatus("In Review");
} else {
setCubaStatus(getLabel("Required"));
} else {
if (isEntryPresent('CUBA')) {
setCubaStatus(getLabel("Verified"));
};
useEffect(() => {
// getGlobalStatus();
// if (
// authToken
// ) {
// getUploadedAllFilesDetails();
// // callApiForStatusMessage();
// // getUploadedFileDetail(docType);
// }
// setActualStatuses();
fetch(configurationServices().uploadDocuments)
.then((response) => {
return response.json();
})
.then((data) => {
setDocLists(data);
})
.catch((e) => {
console.log(e.message);
});
};
useEffect(() => {
// if(!selectedAsset){
// navigate("/assetclassverification");
// }
if (selectedAsset.assetClassCode === "LS" && kycStatus === "COMPLETE" &&
) {
navigate("/termsofbusiness");
setSessionFlag("Loader")
makeInitialCalls()
fetchJson()
return () => {
clearInterval(intervalId.current);
};
}, []);
useEffect(() => {
setActualStatuses();
setManualUploadDocStatus();
setTimeout(()=>{
if(sessionFlag==='Loader'){
setSessionFlag('')
},500)
await getGlobalStatus();
// await getUploadedAllFilesDetails();
if(prefVal){
setEnableVideoIdent(true)
useEffect(() => {
// if (eventFlag) {
// setTimeout(() => {
// getUploadedAllFilesDetails();
// }, 30000);
// }
if(eventFlag) {
// setIntervalId(timerId);
}, [eventFlag]);
dispatch(
userInfoData(
{
...reqObj,
currentStep: "UPLOAD_DOCUMENT",
},
reqObj
);
navigate("/deposit");
};
const requestObj = {
processName: "declineDocument",
requestBody: {
docId: documentId,
userId: userId,
},
methodType: "POST",
};
axios
.then((response) => {
// handle success
// setIsConditionalReview(true);
})
.catch((error) => {
// handle error
});
};
const dataObj = {
isDeclined: true,
updateSubStatus: false,
subStatus: '',
docStatus: '',
};
updateMismatchStatus(dataObj);
};
// todo need check after updating the details are saving properly in backend
table
aboutYourself = {
values: {
},
};
} else if (isBothMismatch) {
aboutYourself = {
values: {
},
};
} else if (isDOBMismatch) {
aboutYourself = {
values: {
},
};
const reqBody = {
id: userId,
isPrompt:true,
aboutYourself: aboutYourself,
};
users.push(reqBody);
const requestBody = {
users: users,
};
const requestObj = {
processName: "updateUser",
requestBody,
methodType: "POST",
serviceName: ["aboutYourself"],
};
const dataObj = {
isDeclined: false,
updateSubStatus: false,
subStatus: "",
docStatus: "",
};
axios
.then((response) => {
setIdentityStatus("Verified");
updateMismatchStatus(dataObj);
})
.catch((error) => {
dispatch(notifyApiFail("Something went wrong."));
});
};
if (re.test(newValue)) {
} else {
setInputFirstName(newValue);
if (re.test(newValue)) {
} else {
setInputLastName(newValue);
} else if (re.test(newValue)) {
setInputMiddleName(newValue);
};
if (
!inputFirstName ||
!inputLastName
) {
isValid = false;
return isValid;
};
setStatusesObj(tStatusObj)
// documentVerification.userManualUploadDetails = manualUploadFiles;
dispatch(updateUserInfo(documentVerification));
dispatch(updateUserInfo(userStatusInfo));
axios
.post(
PROCESS_API_URL,
processName: "userDetails",
requestBody: {
userId: userId,
},
methodType: "POST",
},
config
.then((response) => {
if(isStocks===true){
currentAccountData["kycStatus"]=forexData?.kycStatus
userStatusInfo.preCddEligible = userDetails.preCddEligible;
userStatusInfo.dob = userDetails.dateOfBirth;
userStatusInfo.fxowsAccountNumber = userDetails.fxowsAccountNumber;
setLatestStatuses(currentAccountData)
dispatch(updateUserInfo(userStatusInfo));
setFirstName(userDetails.firstName);
setLastName(userDetails.lastName);
setMiddleName(userDetails.middleName);
})
.catch((error) => {
setSessionFlag('');
console.log("error", error);
});
};
axios
.post(
PROCESS_API_URL,
processName: "securemeDocumentStatus",
requestBody: {
userId: userId,
assetId:selectedAsset.id,
requestId: secureMeRequestId,
},
methodType: "POST",
},
config
.then((response) => {
let dateOfBirthStatus =
getUniformValue(securemeDocData?.dateOfBirthStatus);
let checkResultReason =
getUniformValue(securemeDocData?.checkResultReason);
documentVerification.userDocumentVerification = response?.data?.data;
dispatch(updateUserInfo(documentVerification));
if(latestAu10TixRecord?.processingResultRemark &&
(latestAu10TixRecord?.processingResultRemark==='0,100' ||
latestAu10TixRecord?.processingResultRemark==='100')){
setIdentityStatus('Expired');
subStatusName = "Alert";
getIdentityStatusLogic(tSecureMeData,
);
else{
setIdentityStatus('In Review');
})
.catch((error) => {
// dispatch(
// notifyApiFail({
// title: getLabel("SECURE_ME_ERROR_TITLE"),
// desc: getLabel("AUTHORIZATION_FAILED"),
// })
// );
});
};
// useEffect(() => {
// setTimeout(() => {
// clearInterval(timerId);
// }, 30000);
// }
// }, [identityStatus]);
setSubmitLoading(true);
const dataObject = {
// // deviceId: "test",
// documentType: "image",
// reviewType: "test",
// documentCategory: docType,
// processed: false,
// processingResultRemark: "test",
// // softwareUsed: "test",
// // containNonLatinChars: false,
// fullNameStatus: "MATCH",
// addressStatus: "MATCH",
// nameAndDateOfBirthinterpretedResult: '',
// requestId: "requestId",
"documentType": "image",
// "docLevelName": "idv",
"reviewType": "test",
"vendorName": "manualupload",
"processed": false,
// "primaryProcessingResult": "manualupload",
"processingResultRemark": "test",
"nameAndDateOfBirthinterpretedResult": '',
"requestId": "requestId",
};
});
// Append the userId and file groups object to the form data
formData.append("userId", userId);
formData.append("assetId", selectedAsset.id);
formData.append("userDocumentString", JSON.stringify(dataObject));
await axios
.post(`${BASE_URL}${urlEndPoint}`, formData, {
headers: {
"Content-Type": "multipart/form-data",
},
})
.then((response) => {
setSubmitLoading(false);
setSessionFlag("MessageCard")
// const {
// kycStatus,
// eddStatus,
// fatcaStatus,
// isZulu,
// fundingStatus,
// miscStatusReason,
// } = statusesObj;
setUploadedStatus({
status:"success",
description :"Your document is under review, and we'll notify you once
accepted. If you have more documents to add, select \"Upload additional
documents\'"
});
setIdentityStatus("In Review");
documentVerification.userDocumentVerification.documentStatus = "In
Review";
dispatch(updateUserInfo(documentVerification));
setAddressStatus("In Review");
setSowStatus("In Review");
setForeignStatus("In Review");
setCubaStatus("In Review");
})
.catch((error) => {
setSessionFlag("MessageCard")
setUploadedStatus({
status:"fail",
});
});
};
setIsApplicantFound(true)
return latestSumSubRecord
}
}
if(latestAddressSumSubRecord){
setAddressStatus("Verified");
setAddressStatus("In Review");
if(enableVideoIdent===true){
if(latestIdSumSubRecord){
setIdentityStatus("Verified");
setIdentityStatus("In Review");
}
else{
console.log({latestAu10TixRecord})
clearInterval(intervalId.current);
callApiForStatusMessage(latestAu10TixRecord);
// return (
// manualDocData
// {
// {
// setAddressStatus("Complete");
// setAddressStatus("In Review");
// }
// if (kycStatus!=='COMPLETE') {
// }
// } else if (docsData.documentCategory === "Foreign Status" ||
docsData.documentCategory === "w8ben") {
// console.log("docsData.documentResultMapping?.documentStatus ",
docsData.documentResultMapping?.documentStatus)
// setForeignStatus(docsData.documentResultMapping?.documentStatus
=== "MANUAL_REVIEW" ? "In Review" :
docsData.documentResultMapping?.documentStatus);
// }
// }
// })
// );
};
await axios
.post(
PROCESS_API_URL,
processName: "userDocuments",
requestBody: {
userId: userId,
assetId: selectedAsset.id,
isImageRequired: true,
},
methodType: "POST",
},
config
.then((response) => {
setLatestStatuses(accountData)
})
.catch((error) => {
setSessionFlag('');
});
};
// await axios
// .post(
// PROCESS_API_URL,
// {
// processName: "userDocuments",
// requestBody: {
// userId: userId,
// countryId: 1,
// assetId: selectedAsset.id,
// isImageRequired: true,
// },
// methodType: "POST",
// },
// config
// )
// .then((response) => {
// const manualUploadFiles =
// response?.data?.data["documents-response"];
// setManualDocData(manualUploadFiles);
// documentVerification.userManualUploadDetails = manualUploadFiles;
// dispatch(updateUserInfo(documentVerification));
// (docDetail) =>
// );
// setManualUploadDocStatus(manualUploadFiles);
// setIsApplicantFound(true)
// )[0];
// if (latestSumSubRecord["processingResultRemark"].match(/completed')) {
// setAddressStatus("Complete");
// }else if (!latestSumSubRecord["processingResultRemark"].match(/init'))
{
// setAddressStatus("In Review");
// }
// }
// callApiForStatusMessage(au10tixData[au10tixData.length -
1].requestId);
// }
// })
// .catch((error) => {
// // handle error
// });
// };
// console.log("receiveMessage", event)
return;
} else {
const {
data: { eventType },
} = event;
setIdentityStatus("In Review");
//todo need to update the status in backend DB by integrating with API once
its done
dispatch(updateUserInfo(documentVerification));
setSessionFlag("MessageCard")
setTimeout(()=>{
setEventFlag(true);
}, 2000)
// setSessionFlag('');
// setEnableDetailsView(true);
}
if (eventType !== null && eventType === "Application-state: loaded") {
// console.log("SecureMeeeee Loaded")
};
setSessionFlag("Loader")
const requestObj = {
processName: "secureme",
requestBody: {
userId: userId,
processingFlow: "idv",
assetId: selectedAsset.id
},
methodType: "POST",
await axios
if(isAu10TixToken){
setSessionFlag("Au10Tix");
console.log("Inside isAu10TixToken ", isAu10TixToken)
setAuthenticsUrl(url);
setEnableDetailsView(false);
else
getUploaderVendor(uploadPrefSecondCheck, uploadPrefFirstCheck)
})
.catch((error) => {
getUploaderVendor(uploadPrefSecondCheck, uploadPrefFirstCheck)
// dispatch(
// notifyApiFail({
// title: getLabel("SECURE_ME_ERROR_TITLE"),
// desc: getLabel("AUTHORIZATION_FAILED"),
// })
// );
});
};
setSessionFlag("Loader")
const requestObj = {
requestBody:{
userId: userId+"-"+selectedAsset.id,
tokenType: type,
isApplicantFound
}
};
axios
.then((response) => {
setSumSubAccessToken(resData?.data?.token)
setSessionFlag("SumSub");
setEnableDetailsView(false);
} else {
getUploaderVendor(uploadPrefSecondCheck, uploadPrefFirstCheck)
})
.catch((error) => {
getUploaderVendor(uploadPrefSecondCheck, uploadPrefFirstCheck)
});
};
goToMainPage()
window.open(DEUTSCHEPOST_URL, "_blank");
if(currentPref!==diffPref){
createAuthenticsSession();
createSumSubSession("POR")
createSumSubSession("VI")
else if(currentPref==="DEUTSCHEPOST"){
createDeutchePostSession();
else{
openDetailView()
setSessionFlag('');
setEnableDetailsView(true);
setSessionFlag("Loader")
await getGlobalStatus();
setDocType('')
setEnableDetailsView(false);
setSelectedDocument({})
setSubDocuments('')
setAuthenticsUrl('')
setSumSubAccessToken('')
setTimeout(()=>{
setSessionFlag('');
}, 1000)
setSessionFlag('');
setEnableDetailsView(false);
setDocType('')
console.log({selectedDoc})
if(
if(prefVal){
uploadPrefSecondCheck = uploadPrefAry[1]?.toUpperCase()?.trim()
getUploaderVendor(uploadPrefFirstCheck, uploadPrefSecondCheck)
else
openDetailView()
};
setDocType('');
setSessionFlag('');
setSelectedDocument({})
setEnableDetailsView(false);
};
setSessionFlag("MessageCard")
setAddressStatus("In Review")
};
return (
<>
{
<Box>
<Loader/>
</Box>
) :
<MessageCardBox statusesObj={statusesObj}
setShowManualUploadFS={setShowManualUploadFS} openDetailView={openDetailView}
uploadedStatus={uploadedStatus} onBackSubmit={onBackSubmit}
goToMainPage={goToMainPage} />
) :
<>
</Box>
</>
<>
<SumSubPage
accessToken={sumSubAccessToken}
onSumSubSuccess={onSumSubSuccess}
openDetailView={openDetailView}
inReview={inReview}
/>
</>
<DocumentsPage
docType={docType}
setDocType={setDocType}
selectedDocument={selectedDocument}
setSelectedDocument={setSelectedDocument}
subDocuments={subDocuments}
docLists={docLists}
setSubDocuments={setSubDocuments}
onDocumentCardSelection={onDocumentCardSelection}
applFirstName={firstName}
applLastName={lastName}
applMiddleName={middleName}
docFirstName={docFirstName}
docMiddleName={docMiddleName}
docLastName={docLastName}
updateCurrentStepAndNavigate={updateCurrentStepAndNavigate}
docTitle={docTitle}
setDocTitle={setDocTitle}
onUploadSubmit={onUploadSubmit}
isNameMismatch={isNameMismatch}
isDOBMismatch={isDOBMismatch}
isBothMismatch={isBothMismatch}
enableTextInput={enableTextInput}
docDOB={docDOB}
applDOB={applDOB}
onMismatchConfirmSubmit={onMismatchConfirmSubmit}
onMismatchDeclineSubmit={onMismatchDeclineSubmit}
onInputChange={onInputChange}
validation={validation}
errorTextFeild={errorTextFeild}
inputFirstName={inputFirstName}
inputMiddleName={inputMiddleName}
inputLastName={inputLastName}
identityStatus={identityStatus}
addressStatus={addressStatus}
sowStatus={sowStatus}
sofStatus={sofStatus}
foreignStatus={foreignStatus}
cubaStatus={cubaStatus}
docsAcceptedFundNotAllowed={docsAcceptedFundNotAllowed}
onBackSubmit={onBackSubmit}
enableDetailsView={enableDetailsView}
submitLoading={submitLoading}
setSubmitLoading={setSubmitLoading}
enableVideoIdent={enableVideoIdent}
selectedAsset={selectedAsset}
goToMainPage={goToMainPage}
userId={userId}
authToken={authToken}
showManualUploadFS={showManualUploadFS}
setShowManualUploadFS={setShowManualUploadFS}
setSessionFlag={setSessionFlag}
setUploadedStatus={setUploadedStatus}
ip={ip}
userCameFrom={userCameFrom}
/>
) : null
</>
);
};
return (
<Box
sx={{
zIndex:1,
display: "flex",
flexDirection: "row",
justifyContent: "flex-start",
alignItems: "center",
gap: "8px",
position: "fixed",
width: "100%",
padding: "20px",
left: "0",
bottom: "0",
background: "#000",
boxSizing: "border-box",
}}
>
<Button
variant="outlined"
sx={{
zIndex:1,
color: "#000!important",
flexDirection: "row",
alignItems: "center",
height: "48px",
fontWeight: 700,
color: "white",
fontSize: "14px",
lineHeight: "24px",
borderRadius: "100px",
textTransform: "uppercase",
letterSpacing: "0.42px",
}}
onClick={goToMainPage}
>
<ArrowBackIcon
/>
{"BACK TO DOCUMENTS"}
</Button>
</Box>
);
function MessageCardBox(props){
const {
uploadedStatus,
openDetailView,
onBackSubmit,
goToMainPage,
setShowManualUploadFS,
} = props;
// const tStatusObj = {
// ...currentAccountData,
// kycStatus,
// eddStatus,
// fatcaStatus,
// miscStatusReason,
// miscStatus,
// xddStatus,
// screeningStatus,
// };
// if (
// ) {
// }
return (
<Stack
spacing={2}
alignItems={'center'}
>
<Box>
</Box>
<Typography
sx={{
color: '#F8F8F8',
fontWeight: 700,
lineHeight: '40px',
letterSpacing: '0.72px',
maxWidth: '644px'
}}
>
{uploadedStatus.title}
</Typography>
{uploadedStatus.description.length > 0 ?
<Typography
sx={{
color:'#B3B3B3',
fontSize: '18px',
fontWeight: 500,
lineHeight: '28px',
letterSpacing: '0.54px',
maxWidth: '644px'
}}
>
<TRADUTrans
defaults={uploadedStatus.description}
/>
</Typography>
:'' }
uploadedStatus.footerText
<Box
className="msg-card-footer-text"
>
{uploadedStatus.footerText}
</Box>
<></>
<Box
// className="button-classTwo"
sx={isMobile ? {
display: "flex",
alignItems: "center",
gap: "8px",
position: "fixed",
width: "100%",
padding: '20px',
left: "0",
bottom: "0",
background: "#000",
boxSizing: "border-box",
zIndex: "1",
} : {
display: "flex",
alignItems: "center",
gap: "8px",
position: "fixed",
width: "100%",
padding: '20px',
left: "0",
bottom: "0",
background: "#000",
boxSizing: "border-box",
zIndex: "1",
}}
>
{ uploadedStatus.status != 'success' ?
uploadedStatus.status != 'fail' ?
( <Button
variant="outlined"
sx={{
flexDirection: "row",
alignItems: "center",
gap: "8px",
height: '48px',
fontWeight: 700,
fontSize: '14px',
lineHeight: '24px',
borderRadius: '100px',
color: '#ffffff',
textTransform: 'uppercase',
letterSpacing: '0.42px',
}}
onClick={() => {
// setSessionFlag('');
openDetailView();
// setShowManualUploadFS(true);
}}
>
{'UPLOAD ADDITIONAL DOCUMENTS'}
</Button>)
: ( <Button
variant="contained"
sx={{
flexDirection: "row",
alignItems: "center",
gap: "8px",
height: '48px',
fontWeight: 700,
fontSize: '14px',
lineHeight: '24px',
borderRadius: '100px',
color: '#ffffff',
textTransform: 'uppercase',
letterSpacing: '0.42px',
}}
onClick={() => {
// setSessionFlag('');
// setShowManualUploadFS(true);
openDetailView();
}}
>
<ArrowForwardIcon
sx={{
}}
/>
</Button>)
: ''}
<Button
// className="sub-upload"
sx={{
color: '#000!important',
flexDirection: "row",
alignItems: "center",
gap: "8px",
height: '48px',
fontWeight: 700,
color: 'white',
fontSize: '14px',
lineHeight: '24px',
borderRadius: '100px',
textTransform: 'uppercase',
letterSpacing: '0.42px',
}}
onClick={() => {
// setSessionFlag('');
// onBackSubmit();
goToMainPage();
// navigate('/assetclassverification');
}}
>
sx={{
color: "primary",
}}
/> : ''}
</Button>
</Box>
</Stack>
);