@@ -45,14 +45,20 @@ export default function AdminParticipantsPage() {
4545 limit : 1000 , // Get all participants for admin view
4646 } ) ;
4747
48- if ( ! participants ) {
48+ const paymentInfo = useQuery ( api . queries . paymentConfig . getPublicPaymentInfo , {
49+ challengeId : challengeId as Id < "challenges" > ,
50+ } ) ;
51+
52+ if ( ! participants || ! paymentInfo ) {
4953 return (
5054 < div className = "flex items-center justify-center py-20 text-zinc-500" >
5155 Loading...
5256 </ div >
5357 ) ;
5458 }
5559
60+ const showPaymentColumn = paymentInfo . requiresPayment ;
61+
5662 // Filter by search
5763 const filtered = participants . filter ( ( p : ( typeof participants ) [ number ] ) => {
5864 const searchLower = search . toLowerCase ( ) ;
@@ -147,19 +153,21 @@ export default function AdminParticipantsPage() {
147153 #
148154 </ span >
149155 </ div >
150- < div className = "col-span-3" >
156+ < div className = { showPaymentColumn ? "col-span-3" : "col-span-4" } >
151157 < SortHeader field = "name" > Participant</ SortHeader >
152158 </ div >
153159 < div className = "col-span-1" >
154160 < span className = "text-[10px] font-medium uppercase tracking-wider text-zinc-500" >
155161 Role
156162 </ span >
157163 </ div >
158- < div className = "col-span-2" >
159- < span className = "text-[10px] font-medium uppercase tracking-wider text-zinc-500" >
160- Payment
161- </ span >
162- </ div >
164+ { showPaymentColumn && (
165+ < div className = "col-span-2" >
166+ < span className = "text-[10px] font-medium uppercase tracking-wider text-zinc-500" >
167+ Payment
168+ </ span >
169+ </ div >
170+ ) }
163171 < div className = "col-span-2 text-right" >
164172 < SortHeader field = "points" className = "justify-end" >
165173 Points
@@ -190,7 +198,7 @@ export default function AdminParticipantsPage() {
190198 { index + 1 }
191199 </ span >
192200 </ div >
193- < div className = "col-span-3 flex items-center gap-2">
201+ < div className = { cn ( " flex items-center gap-2", showPaymentColumn ? "col-span-3" : "col-span-4" ) } >
194202 < div className = "flex h-6 w-6 items-center justify-center rounded-full bg-zinc-800" >
195203 { participant . user . avatarUrl ? (
196204 < img
@@ -224,17 +232,19 @@ export default function AdminParticipantsPage() {
224232 { participant . role }
225233 </ span >
226234 </ div >
227- < div className = "col-span-2" >
228- < span
229- className = { cn (
230- "inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide" ,
231- paymentStatusStyles [ participant . paymentStatus ] ||
232- "bg-zinc-500/15 text-zinc-300 border-zinc-500/30"
233- ) }
234- >
235- { participant . paymentStatus }
236- </ span >
237- </ div >
235+ { showPaymentColumn && (
236+ < div className = "col-span-2" >
237+ < span
238+ className = { cn (
239+ "inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide" ,
240+ paymentStatusStyles [ participant . paymentStatus ] ||
241+ "bg-zinc-500/15 text-zinc-300 border-zinc-500/30"
242+ ) }
243+ >
244+ { participant . paymentStatus }
245+ </ span >
246+ </ div >
247+ ) }
238248 < div className = "col-span-2 text-right" >
239249 < div className = "flex items-center justify-end gap-1" >
240250 < Trophy className = "h-3 w-3 text-amber-400" />
0 commit comments