@@ -39,18 +39,18 @@ function generateEditCode(): `0x${string}` {
3939
4040/* -- Program List Row -- */
4141
42- function ProgramRow ( { programId, filterMine, wallet } : { programId : number ; filterMine ?: boolean ; wallet ?: `0x${string } ` } ) {
42+ function ProgramRow ( { programId, filterMine, wallet, isAdmin } : { programId : number ; filterMine ?: boolean ; wallet ?: `0x${string } `; isAdmin ?: boolean } ) {
4343 const { data : program } = useProgram ( programId ) ;
4444 const { data : member } = useReadContract ( {
4545 address : CONTRACTS . rewardsProgram ,
4646 abi : REWARDS_PROGRAM_ABI ,
4747 functionName : "getMember" ,
4848 args : wallet ? [ programId , wallet ] : undefined ,
49- query : { enabled : ! ! filterMine && ! ! wallet } ,
49+ query : { enabled : ! ! filterMine && ! isAdmin && ! ! wallet } ,
5050 } ) ;
5151
5252 if ( ! program ) return null ;
53- if ( filterMine && ( ! member || ! member . active ) ) return null ;
53+ if ( filterMine && ! isAdmin && ( ! member || ! member . active ) ) return null ;
5454
5555 return (
5656 < TableRow hover >
@@ -63,6 +63,11 @@ function ProgramRow({ programId, filterMine, wallet }: { programId: number; filt
6363 </ TableCell >
6464 < TableCell sx = { { display : { xs : "none" , sm : "table-cell" } } } > { program . description } </ TableCell >
6565 < TableCell > { program . active ? < Chip label = "Active" color = "success" size = "small" /> : < Chip label = "Inactive" size = "small" /> } </ TableCell >
66+ < TableCell >
67+ < Button component = { Link } href = { `/programs?id=${ program . id } ` } size = "small" variant = "outlined" >
68+ Open
69+ </ Button >
70+ </ TableCell >
6671 </ TableRow >
6772 ) ;
6873}
@@ -577,11 +582,13 @@ function ProgramDetail({ programId }: { programId: number }) {
577582 { isSuccessTL && < Alert severity = "success" sx = { { mt : 2 } } > Transfer limit updated!</ Alert > }
578583 </ DialogContent >
579584 < DialogActions >
580- < Button onClick = { ( ) => setOpenTL ( false ) } > Cancel</ Button >
581- < Button variant = "contained" onClick = { ( ) => setTransferLimit ( programId , parseInt ( tlValue ) || 0 ) }
582- disabled = { isPendingTL || isConfirmingTL } >
583- { isPendingTL || isConfirmingTL ? < CircularProgress size = { 20 } /> : "Set Limit" }
584- </ Button >
585+ < Button onClick = { ( ) => setOpenTL ( false ) } > { isSuccessTL ? "Close" : "Cancel" } </ Button >
586+ { ! isSuccessTL && (
587+ < Button variant = "contained" onClick = { ( ) => setTransferLimit ( programId , parseInt ( tlValue ) || 0 ) }
588+ disabled = { isPendingTL || isConfirmingTL } >
589+ { isPendingTL || isConfirmingTL ? < CircularProgress size = { 20 } /> : "Set Limit" }
590+ </ Button >
591+ ) }
585592 </ DialogActions >
586593 </ Dialog >
587594
@@ -752,18 +759,20 @@ function ProgramList() {
752759 < TableCell > Name</ TableCell >
753760 < TableCell sx = { { display : { xs : "none" , sm : "table-cell" } } } > Description</ TableCell >
754761 < TableCell > Status</ TableCell >
762+ < TableCell > </ TableCell >
755763 </ TableRow >
756764 </ TableHead >
757765 < TableBody >
758766 { programIds . length === 0 ? (
759767 < TableRow >
760- < TableCell colSpan = { 5 } align = "center" > No programs yet.</ TableCell >
768+ < TableCell colSpan = { 6 } align = "center" > No programs yet.</ TableCell >
761769 </ TableRow >
762770 ) : (
763771 programIds . map ( id => (
764772 < ProgramRow key = { id } programId = { id }
765773 filterMine = { filterMode === "mine" }
766- wallet = { address } />
774+ wallet = { address }
775+ isAdmin = { isAdmin } />
767776 ) )
768777 ) }
769778 </ TableBody >
0 commit comments