@@ -5,22 +5,32 @@ import { ProgramStatsFilter } from "@/ui/partners/program-stats-filter";
5
5
import { SaleStatusBadges } from "@/ui/partners/sale-status-badges" ;
6
6
import { useRouterStuff } from "@dub/ui" ;
7
7
import { Users } from "@dub/ui/icons" ;
8
- import { useParams } from "next/navigation" ;
8
+ import { useParams , useSearchParams } from "next/navigation" ;
9
9
10
10
export function SaleStats ( ) {
11
11
const { slug, programId } = useParams ( ) ;
12
12
const { queryParams } = useRouterStuff ( ) ;
13
-
13
+ const searchParams = useSearchParams ( ) ;
14
14
const { salesCount, error } = useSalesCount ( ) ;
15
15
16
+ const view = searchParams . get ( "view" ) || "sales" ;
17
+
16
18
return (
17
19
< div className = "xs:grid-cols-4 xs:divide-x xs:divide-y-0 grid divide-y divide-neutral-200 overflow-hidden rounded-lg border border-neutral-200" >
18
20
< ProgramStatsFilter
19
21
label = "All"
20
22
href = { `/${ slug } /programs/${ programId } /sales` }
21
- count = { salesCount ?. all }
23
+ count = { salesCount ?. all . count }
24
+ amount = {
25
+ view === "sales"
26
+ ? salesCount ?. all . amount
27
+ : view === "commissions"
28
+ ? salesCount ?. all . earnings
29
+ : undefined
30
+ }
22
31
icon = { Users }
23
32
iconClassName = "text-neutral-600 bg-neutral-100"
33
+ variant = "loose"
24
34
error = { ! ! error }
25
35
/>
26
36
< ProgramStatsFilter
@@ -31,9 +41,17 @@ export function SaleStats() {
31
41
getNewPath : true ,
32
42
} ) as string
33
43
}
34
- count = { salesCount ?. pending }
44
+ count = { salesCount ?. pending . count }
45
+ amount = {
46
+ view === "sales"
47
+ ? salesCount ?. pending . amount
48
+ : view === "commissions"
49
+ ? salesCount ?. pending . earnings
50
+ : undefined
51
+ }
35
52
icon = { SaleStatusBadges . pending . icon }
36
53
iconClassName = { SaleStatusBadges . pending . className }
54
+ variant = "loose"
37
55
error = { ! ! error }
38
56
/>
39
57
< ProgramStatsFilter
@@ -44,9 +62,17 @@ export function SaleStats() {
44
62
getNewPath : true ,
45
63
} ) as string
46
64
}
47
- count = { salesCount ?. processed }
65
+ count = { salesCount ?. processed . count }
66
+ amount = {
67
+ view === "sales"
68
+ ? salesCount ?. processed . amount
69
+ : view === "commissions"
70
+ ? salesCount ?. processed . earnings
71
+ : undefined
72
+ }
48
73
icon = { SaleStatusBadges . processed . icon }
49
74
iconClassName = { SaleStatusBadges . processed . className }
75
+ variant = "loose"
50
76
error = { ! ! error }
51
77
/>
52
78
< ProgramStatsFilter
@@ -57,9 +83,17 @@ export function SaleStats() {
57
83
getNewPath : true ,
58
84
} ) as string
59
85
}
60
- count = { salesCount ?. paid }
86
+ count = { salesCount ?. paid . count }
87
+ amount = {
88
+ view === "sales"
89
+ ? salesCount ?. paid . amount
90
+ : view === "commissions"
91
+ ? salesCount ?. paid . earnings
92
+ : undefined
93
+ }
61
94
icon = { SaleStatusBadges . paid . icon }
62
95
iconClassName = { SaleStatusBadges . paid . className }
96
+ variant = "loose"
63
97
error = { ! ! error }
64
98
/>
65
99
</ div >
0 commit comments