22
33import useProgramEnrollment from "@/lib/swr/use-program-enrollment" ;
44import { referralFormSchema } from "@/lib/zod/schemas/referral-form" ;
5- import { PROGRAM_MARKETPLACE_LOGO_COUNT } from "@/ui/partners/program-marketplace/program-marketplace-logos" ;
65import { SubmitReferralSheet } from "@/ui/referrals/submit-referral-sheet" ;
76import { AnimatedEmptyState } from "@/ui/shared/animated-empty-state" ;
87import { Button } from "@dub/ui" ;
@@ -12,25 +11,60 @@ import * as z from "zod/v4";
1211
1312const EMPTY_STATE_CARDS = [
1413 {
15- logo : 2 ,
16- programName : "Tella" ,
17- name : "John Doe" ,
14+ logoSrc : "https://assets.dub.co/cms/logo-nvidia.svg" ,
15+ programName : "Nvidia" ,
16+ name : "Noah Thompson" ,
17+ status : "New" ,
18+ statusClassName : "bg-blue-100 text-blue-700" ,
19+ } ,
20+ {
21+ logoSrc : "https://assets.dub.co/cms/logo-openai.svg" ,
22+ programName : "OpenAI" ,
23+ name : "Ava Robinson" ,
1824 status : "Qualified" ,
19- statusClassName : "text -violet-700 bg -violet-100 " ,
25+ statusClassName : "bg -violet-100 text -violet-700 " ,
2026 } ,
2127 {
22- logo : 7 ,
23- programName : "Fillout" ,
24- name : "John Doe" ,
28+ logoSrc : "https://assets.dub.co/cms/logo-google.svg" ,
29+ programName : "Google" ,
30+ name : "Sophie Carter" ,
31+ status : "New" ,
32+ statusClassName : "bg-blue-100 text-blue-700" ,
33+ } ,
34+ {
35+ logoSrc : "https://assets.dub.co/cms/logo-microsoft.svg" ,
36+ programName : "Microsoft" ,
37+ name : "Chloe Scott" ,
2538 status : "Closed won" ,
26- statusClassName : "text-green-700 bg-green-100" ,
39+ statusClassName : "bg-green-100 text-green-700" ,
40+ } ,
41+ {
42+ logoSrc : "https://assets.dub.co/cms/logo-meta.svg" ,
43+ programName : "Meta" ,
44+ name : "Liam Johnson" ,
45+ status : "Qualified" ,
46+ statusClassName : "bg-violet-100 text-violet-700" ,
2747 } ,
2848 {
29- logo : 11 ,
30- programName : "Granola " ,
31- name : "John Doe " ,
49+ logoSrc : "https://assets.dub.co/cms/logo-slack.svg" ,
50+ programName : "Slack " ,
51+ name : "Oliver Green " ,
3252 status : "New" ,
33- statusClassName : "text-blue-700 bg-blue-100" ,
53+ statusClassName : "bg-blue-100 text-blue-700" ,
54+ } ,
55+ {
56+ logoSrc : "https://assets.dub.co/cms/logo-netflix.svg" ,
57+ programName : "Netflix" ,
58+ name : "Ella Martinez" ,
59+ status : "Closed won" ,
60+ statusClassName : "bg-green-100 text-green-700" ,
61+ } ,
62+ {
63+ logoSrc : "https://assets.dub.co/cms/logo-apple.svg" ,
64+ programName : "Apple" ,
65+ name : "Amelia Adams" ,
66+ status : "Qualified" ,
67+ statusClassName : "bg-violet-100 text-violet-700" ,
3468 } ,
3569] ;
3670
@@ -67,12 +101,7 @@ export function PartnerProfileReferralsEmptyState() {
67101 ? "Submit leads and track their progress through the sales process."
68102 : "You can still earn from regular referrals using your links and codes."
69103 }
70- // TODO: Add "learn more" URLs
71- learnMoreHref = {
72- submittedReferralsEnabled
73- ? "https://dub.co/help/article/partner-rewards"
74- : "https://dub.co/help/article/partner-rewards"
75- }
104+ learnMoreHref = "https://dub.co/help/article/submitted-referrals"
76105 addButton = {
77106 submittedReferralsEnabled ? (
78107 < Button
@@ -83,25 +112,19 @@ export function PartnerProfileReferralsEmptyState() {
83112 />
84113 ) : undefined
85114 }
86- cardCount = { 3 }
115+ cardCount = { EMPTY_STATE_CARDS . length }
87116 cardContent = { ( index ) => {
88117 const card = EMPTY_STATE_CARDS [ index ] ;
89118 return (
90119 < div className = "flex grow items-center justify-between gap-4" >
91120 < div className = "flex items-center gap-4" >
92- < div
93- className = "size-8"
94- style = { {
95- backgroundImage :
96- "url(https://assets.dub.co/misc/program-marketplace-logos.png)" ,
97- backgroundSize : `${ PROGRAM_MARKETPLACE_LOGO_COUNT * 100 } %` ,
98- backgroundPositionX :
99- ( PROGRAM_MARKETPLACE_LOGO_COUNT -
100- ( card . logo % PROGRAM_MARKETPLACE_LOGO_COUNT ) ) *
101- 100 +
102- "%" ,
103- } }
104- />
121+ < div className = "flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-full border border-neutral-200 bg-white" >
122+ < img
123+ alt = { `${ card . programName } logo` }
124+ src = { card . logoSrc }
125+ className = "size-full object-contain"
126+ />
127+ </ div >
105128 < div className = "flex flex-col" >
106129 < div className = "text-content-default text-sm font-semibold" >
107130 { card . programName }
0 commit comments