Skip to content

Commit c66dc69

Browse files
committed
fix: show referees
1 parent 6c01709 commit c66dc69

File tree

4 files changed

+38
-30
lines changed

4 files changed

+38
-30
lines changed

src/components/AccountList/ReferralProgram.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { ethers } from 'ethers';
1818

1919
import { ReactComponent as VisibilityOnIcon } from "./assets/visibility-on.svg";
2020
import { ReactComponent as VisibilityOffIcon } from "./assets/visibility-off.svg";
21+
import { getPassportTitle } from '../../utils/utils';
2122

2223
const SP_EARNED_FROM_REFERRAL = 10
2324

@@ -42,7 +43,7 @@ export default function ReferralProgram() {
4243
}
4344

4445
return (
45-
<div className={`account-wrapper ${isOpen ? 'active' : ''}`}>
46+
<div className={`account-wrapper fit-content ${isOpen ? 'active' : ''}`}>
4647
<div className="account-main-card" onClick={() => setIsOpen((prev) => !prev)}>
4748
{/* <div className="disabled account-main-card"> */}
4849
<div className="name">
@@ -116,11 +117,11 @@ export default function ReferralProgram() {
116117
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '8px', width: '100%', paddingLeft: '16px' }}>
117118
{profiles?.[0]?.spClub
118119
?
119-
profiles.spClub?.totalReferees > 0 ?
120+
profiles?.[0].spClub?.totalReferees > 0 ?
120121
profiles?.[0]?.spClub.referees?.map((referee: any) =>
121122
<div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', width: '100%', gap: '8px' }}>
122-
<p style={{ width: 'auto', fontSize: '16px', color: '#FFFFFF', fontWeight: 400 }}>{referee.activePlan}</p>
123-
<p style={{ width: 'auto', fontSize: '16px', color: '#989899', fontWeight: 400 }}>{referee.walletAddress?.slice(0, 5) + '...' + referee?.slice(-5)}</p>
123+
<p style={{ width: 'auto', fontSize: '16px', color: '#FFFFFF', fontWeight: 400 }}>{getPassportTitle(referee?.activePassport)}</p>
124+
<p style={{ width: 'auto', fontSize: '16px', color: '#989899', fontWeight: 400 }}>{referee?.walletAddress?.slice(0, 5) + '...' + referee?.walletAddress?.slice(-5)}</p>
124125
</div>
125126
) :
126127
<p>No invitees</p>

src/components/AccountList/SpClub.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function SpClub() {
6565
</div>
6666

6767
{
68-
profiles?.[0]?.spClub?.referrer &&
68+
profiles?.[0]?.spClub?.referrer && profiles?.[0]?.spClub?.referrer?.toString() !== '' &&
6969
<div>
7070
<p style={{ fontSize: '14px', color: '#FFFFFF' }}>Inviter</p>
7171
<p style={{ fontSize: '16px', color: '#989899' }}>{profiles?.[0]?.spClub?.referrer?.toString().slice(0, 5) + '...' + profiles?.[0]?.spClub?.referrer?.toString().slice(-5)}</p>
@@ -116,7 +116,7 @@ export default function SpClub() {
116116

117117
return (
118118
<>
119-
<div className={`account-wrapper referral-program ${isOpen ? 'active' : ''}`}>
119+
<div className={`account-wrapper referral-program fit-content ${isOpen ? 'active' : ''}`} >
120120
<div className="account-main-card" onClick={() => setIsOpen((prev) => !prev)}>
121121
{/* <div className="disabled account-main-card"> */}
122122
<div className="name">

src/components/AccountList/index.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
}
4242

4343
.referral-program.account-wrapper.active {
44-
height: 340px;
44+
height: fit-content;
4545
}
4646

4747
.account-wrapper.active .account-main-card {
@@ -233,6 +233,10 @@
233233
gap: 4px;
234234
}
235235

236+
.fit-content.account-wrapper.active {
237+
height: fit-content !important;
238+
}
239+
236240
.referral-program .info-wrapper {
237241
display: flex;
238242
flex-direction: column;

src/services/wallets.ts

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,8 @@ const getSpClubInfo = async (profile: profile) => {
789789

790790
try {
791791
const refereesResult = await contract.getReferees(profile.keyID, 0);
792-
profile.spClub.totalReferees = refereesResult._total_length;
792+
profile.spClub.totalReferees = Number(refereesResult._total_length);
793+
profile.spClub.referees = [];
793794

794795
if (
795796
refereesResult?.referees?.length > 0 &&
@@ -798,28 +799,30 @@ const getSpClubInfo = async (profile: profile) => {
798799
)
799800
profile.spClub.totalReferees = 0;
800801

801-
refereesResult.referees
802-
.filter(
803-
(referee: string) =>
804-
referee !== "0x0000000000000000000000000000000000000000"
805-
)
806-
.forEach(async (referee: string) => {
807-
const _activePassport = await getCurrentPassportInfo(referee);
808-
809-
const activePassport = {
810-
nftID: _activePassport?.nftIDs?.toString(),
811-
expires: _activePassport?.expires?.toString(),
812-
expiresDays: _activePassport?.expiresDays?.toString(),
813-
premium: _activePassport?.premium,
814-
};
815-
816-
const _referee = {
817-
walletAddress: referee,
818-
activePassport: activePassport,
819-
};
820-
821-
profile.spClub?.referees.push(_referee);
822-
});
802+
const validReferees = refereesResult.referees.filter(
803+
(referee: string) =>
804+
referee !== "0x0000000000000000000000000000000000000000"
805+
);
806+
807+
// Use map to handle async operations
808+
const refereePromises = validReferees.map(async (referee: string) => {
809+
const _activePassport = await getCurrentPassportInfo(referee);
810+
811+
const activePassport = {
812+
nftID: _activePassport?.nftIDs?.toString(),
813+
expires: _activePassport?.expires?.toString(),
814+
expiresDays: _activePassport?.expiresDays?.toString(),
815+
premium: _activePassport?.premium,
816+
};
817+
818+
return {
819+
walletAddress: referee,
820+
activePassport: activePassport,
821+
};
822+
});
823+
824+
// Wait for all promises to resolve
825+
profile.spClub.referees = await Promise.all(refereePromises);
823826
} catch (error) {
824827
console.log(error);
825828
}

0 commit comments

Comments
 (0)