@@ -13,22 +13,21 @@ import { usePartnerGroupHistorySheet } from "@/ui/activity-logs/partner-group-hi
1313import {
1414 Button ,
1515 CalendarIcon ,
16- ChartActivity2 ,
1716 CopyButton ,
1817 Globe ,
1918 Heart ,
2019 OfficeBuilding ,
2120 TimestampTooltip ,
2221 Trophy ,
2322} from "@dub/ui" ;
24- import { VerifiedBadge } from "@dub/ui/icons" ;
23+ import { TriangleWarning , Users , VerifiedBadge } from "@dub/ui/icons" ;
2524import {
2625 COUNTRIES ,
2726 fetcher ,
2827 formatDate ,
2928 formatDateTimeSmart ,
30- timeAgo ,
3129} from "@dub/utils" ;
30+ import { CircleMinus } from "lucide-react" ;
3231import Link from "next/link" ;
3332import { Fragment , ReactNode , createElement } from "react" ;
3433import useSWR from "swr" ;
@@ -93,10 +92,7 @@ export function PartnerInfoCards({
9392 const isNetwork = type === "network" ;
9493
9594 const showPayoutMethodField =
96- isEnrolled &&
97- program ?. payoutMode !== "external" &&
98- partner ?. payoutsEnabledAt != null &&
99- partner ?. defaultPayoutMethod != null ;
95+ isEnrolled && program ?. payoutMode !== "external" ;
10096
10197 const {
10298 partnerGroupHistorySheet,
@@ -143,56 +139,52 @@ export function PartnerInfoCards({
143139 } ,
144140 ] ;
145141
146- if ( isEnrolled ) {
142+ if ( isEnrolled && partner ) {
147143 basicFields = basicFields . concat ( [
148- ...( partner ?. status === "approved"
149- ? [
150- {
151- id : "lastLeadAt" ,
152- icon : < ChartActivity2 className = "size-3.5" /> ,
153- text : partner . lastLeadAt
154- ? `Last lead event ${ timeAgo ( new Date ( partner . lastLeadAt ) , { withAgo : true } ) } `
155- : null ,
156- timestamp : partner . lastLeadAt ?? undefined ,
157- } ,
158- {
159- id : "lastConversionAt" ,
160- icon : < ChartActivity2 className = "size-3.5" /> ,
161- text : partner . lastConversionAt
162- ? `Last conversion event ${ timeAgo ( new Date ( partner . lastConversionAt ) , { withAgo : true } ) } `
163- : null ,
164- timestamp : partner . lastConversionAt ?? undefined ,
165- } ,
166- ]
167- : [ ] ) ,
168144 {
169145 id : "createdAt" ,
170- icon : < CalendarIcon className = "size-3.5" /> ,
171- text : partner
172- ? `${ partner . status === "approved" ? "Partner since" : "Applied" } ${ formatDate ( partner . createdAt ) } `
173- : undefined ,
174- timestamp : partner ?. createdAt ,
146+ icon : < Users className = "size-3.5" /> ,
147+ text : `${ partner . status === "approved" ? "Partner since" : "Applied" } ${ formatDate ( partner . createdAt ) } ` ,
148+ timestamp : partner . createdAt ,
175149 } ,
176- ...( showPayoutMethodField && partner
150+ ...( showPayoutMethodField
177151 ? [
178152 {
179153 id : "payoutMethod" as const ,
180- icon : createElement (
181- getPayoutMethodIconConfig ( partner . defaultPayoutMethod ! ) . Icon ,
182- { className : "size-3.5 shrink-0" } ,
154+ icon : partner . defaultPayoutMethod ? (
155+ createElement (
156+ getPayoutMethodIconConfig ( partner . defaultPayoutMethod ) . Icon ,
157+ { className : "size-3.5 shrink-0" } ,
158+ )
159+ ) : (
160+ < CircleMinus className = "size-3.5 shrink-0" />
183161 ) ,
184- text : `${ getPayoutMethodLabel ( partner . defaultPayoutMethod ! ) } connected ${ formatDateTimeSmart ( partner . payoutsEnabledAt ! ) } ` ,
185- timestamp : partner . payoutsEnabledAt ! ,
162+ text :
163+ partner . defaultPayoutMethod && partner . payoutsEnabledAt
164+ ? `${ getPayoutMethodLabel ( partner . defaultPayoutMethod ) } connected ${ formatDateTimeSmart ( partner . payoutsEnabledAt ) } `
165+ : "No payout method connected" ,
166+ ...( partner . payoutsEnabledAt
167+ ? { timestamp : partner . payoutsEnabledAt }
168+ : { } ) ,
186169 } ,
187170 ]
188171 : [ ] ) ,
189- ...( partner ?. identityVerifiedAt
172+ // TODO: once more partners verify their identity, we can show this by default
173+ ...( partner . identityVerifiedAt
190174 ? [
191175 {
192176 id : "identityVerifiedAt" ,
193- icon : < VerifiedBadge className = "size-3.5 shrink-0" /> ,
194- text : `Identity verified ${ formatDate ( partner . identityVerifiedAt , { month : "short" } ) } ` ,
195- timestamp : partner . identityVerifiedAt ,
177+ icon : partner . identityVerifiedAt ? (
178+ < VerifiedBadge className = "size-3.5 shrink-0" />
179+ ) : (
180+ < TriangleWarning className = "size-3.5 shrink-0" />
181+ ) ,
182+ text : partner . identityVerifiedAt
183+ ? `Identity verified ${ formatDate ( partner . identityVerifiedAt , { month : "short" } ) } `
184+ : "Identity not verified" ,
185+ ...( partner . identityVerifiedAt
186+ ? { timestamp : partner . identityVerifiedAt }
187+ : { } ) ,
196188 } ,
197189 ]
198190 : [ ] ) ,
0 commit comments