Skip to content

Commit 2192d81

Browse files
authored
Merge pull request #1191 from dacadeorg/fix/referral-number-user-profile
feat: update shown user referral count
2 parents f3526e7 + 4a1fb2f commit 2192d81

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

src/components/cards/profile/Request.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
import { useSelector } from "@/hooks/useTypedSelector";
1+
import { useMultiSelector } from "@/hooks/useTypedSelector";
22
import Avatar from "@/components/ui/Avatar";
33
import { ReactElement } from "react";
44
import { useRouter } from "next/router";
55
import Right from "@/icons/angle-right.svg";
66
import Link from "next/link";
7+
import { Referral } from "@/types/community";
8+
import { IRootState } from "@/store";
9+
10+
interface ReferralsMultiSelector {
11+
referrals: Referral[];
12+
count: number;
13+
}
714

815
/**
916
* Request component
@@ -13,7 +20,10 @@ import Link from "next/link";
1320
* @returns {}
1421
*/
1522
export default function Request(): ReactElement {
16-
const referrals = useSelector((state) => state.userReferrals.userReferralList);
23+
const { referrals, count } = useMultiSelector<unknown, ReferralsMultiSelector>({
24+
referrals: (state: IRootState) => state.userReferrals.userReferralList,
25+
count: (state: IRootState) => state.userReferrals.count,
26+
});
1727
const previewList = referrals.slice(0, 3);
1828
const router = useRouter();
1929

@@ -31,14 +41,13 @@ export default function Request(): ReactElement {
3141
))}
3242
</div>
3343
<div className="relative pl-3 font-normal cursor-pointer md:flex md:font-medium" onClick={onClick}>
34-
<span className="md:inline-block">{referrals?.length} Friends have used your invite code</span>
44+
<span className="md:inline-block">{count} Friends have used your invite code</span>
3545
</div>
3646
</div>
3747

3848
<div className="md:pl-4 py-4 md:py-0">4 Pending invitations</div>
3949
</div>
4050
<Link href={`/profile/referrals`} className="text-primary flex items-center justify-between gap-4 cursor-pointer">
41-
{" "}
4251
<span>See all</span>
4352
<Right />
4453
</Link>

src/store/feature/user/referrals.slice.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ interface UserReferralsState {
99
userReferralList: Referral[];
1010
current: Referral | null;
1111
hasMore: boolean;
12+
count: number;
1213
}
1314

1415
const initialState: UserReferralsState = {
1516
userReferralList: [],
1617
current: null,
1718
hasMore: true,
19+
count: 0,
1820
};
1921

2022
/**
@@ -38,9 +40,12 @@ const userReferralsSlice = createSlice({
3840
setHasMoreReferrals: (state, action) => {
3941
state.hasMore = action.payload;
4042
},
43+
setCount: (state, action) => {
44+
state.count = action.payload;
45+
},
4146
},
4247
});
4348

44-
export const { setCurrent, clear, setUserReferralsList, setHasMoreReferrals } = userReferralsSlice.actions;
49+
export const { setCurrent, clear, setUserReferralsList, setHasMoreReferrals, setCount } = userReferralsSlice.actions;
4550

4651
export default userReferralsSlice;

src/store/services/referrals.service.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import baseQuery from "@/config/baseQuery";
22
import { createApi } from "@reduxjs/toolkit/dist/query";
33
import { setReferralsList } from "../feature/referrals.slice";
4-
import { clear, setUserReferralsList, setHasMoreReferrals } from "../feature/user/referrals.slice";
4+
import { clear, setUserReferralsList, setHasMoreReferrals, setCount } from "../feature/user/referrals.slice";
55
import { Referral } from "@/types/community";
66

77
/**
@@ -43,9 +43,10 @@ const referralsService = createApi({
4343
dispatch(clear());
4444
}
4545

46-
list.push(...(data || []));
46+
list.push(...(data?.list || []));
4747
dispatch(setUserReferralsList(list));
48-
dispatch(setHasMoreReferrals(data?.length > 0 ? true : false));
48+
dispatch(setCount(data?.count));
49+
dispatch(setHasMoreReferrals(data?.list?.length > 0 ? true : false));
4950
} catch (error) {
5051
console.log("error in fetching the userFetchReferrals ", error);
5152
}

0 commit comments

Comments
 (0)