1
- import { useSelector } from "@/hooks/useTypedSelector" ;
1
+ import { useMultiSelector } from "@/hooks/useTypedSelector" ;
2
2
import Avatar from "@/components/ui/Avatar" ;
3
3
import { ReactElement } from "react" ;
4
4
import { useRouter } from "next/router" ;
5
5
import Right from "@/icons/angle-right.svg" ;
6
6
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
+ }
7
14
8
15
/**
9
16
* Request component
@@ -13,7 +20,10 @@ import Link from "next/link";
13
20
* @returns { }
14
21
*/
15
22
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
+ } ) ;
17
27
const previewList = referrals . slice ( 0 , 3 ) ;
18
28
const router = useRouter ( ) ;
19
29
@@ -31,14 +41,13 @@ export default function Request(): ReactElement {
31
41
) ) }
32
42
</ div >
33
43
< 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 >
35
45
</ div >
36
46
</ div >
37
47
38
48
< div className = "md:pl-4 py-4 md:py-0" > 4 Pending invitations</ div >
39
49
</ div >
40
50
< Link href = { `/profile/referrals` } className = "text-primary flex items-center justify-between gap-4 cursor-pointer" >
41
- { " " }
42
51
< span > See all</ span >
43
52
< Right />
44
53
</ Link >
0 commit comments