@@ -9,6 +9,7 @@ type GroupData = Tables<"my_groups">;
99
1010export const ListGroups = ( ) => {
1111 const [ groupData , setGroupData ] = useState < GroupData [ ] | null > ( null ) ;
12+ const [ adminData , setAdminData ] = useState < Record < string , boolean > > ( { } ) ;
1213 const [ userName , setUserName ] = useState < string | null > ( null ) ;
1314 const [ error , setError ] = useState < string | null > ( null ) ;
1415
@@ -21,16 +22,32 @@ export const ListGroups = () => {
2122 setError ( "Not logged in" ) ;
2223 return ;
2324 }
24- const { name, type } = userData ;
25+ const { name, type, id } = userData ;
2526 if ( type === "anonymous" ) setUserName ( "Space " + name ) ;
2627 else if ( type === "group" ) setUserName ( "group " + name ) ;
2728 else if ( type === "person" ) setUserName ( name ) ;
28- const response = await client . from ( "my_groups" ) . select ( ) ;
29- if ( response . error ) {
30- setError ( response . error . message ) ;
29+ const groupResponse = await client . from ( "my_groups" ) . select ( ) ;
30+ if ( groupResponse . error ) {
31+ setError ( groupResponse . error . message ) ;
3132 return ;
3233 }
33- setGroupData ( response . data ) ;
34+ setGroupData ( groupResponse . data ) ;
35+ const membershipReq = await client
36+ . from ( "group_membership" )
37+ . select ( "group_id,admin" )
38+ . eq ( "member_id" , id ) ;
39+ if ( membershipReq . error ) {
40+ setError ( membershipReq . error . message ) ;
41+ return ;
42+ }
43+ setAdminData (
44+ Object . fromEntries (
45+ membershipReq . data . map ( ( { group_id, admin } ) => [
46+ group_id ,
47+ admin || false ,
48+ ] ) ,
49+ ) ,
50+ ) ;
3451 } catch ( error ) {
3552 setError (
3653 error instanceof Error ? error . message : "Unknown error occurred" ,
@@ -56,7 +73,11 @@ export const ListGroups = () => {
5673 < ul >
5774 { groupData . map ( ( d ) => (
5875 < li key = { d . id } >
59- < a href = { "group/" + d . id ! } > { d . name } </ a >
76+ { adminData [ d . id || "" ] ? (
77+ < a href = { "group/" + d . id ! } > { d . name } </ a >
78+ ) : (
79+ d . name
80+ ) }
6081 </ li >
6182 ) ) }
6283 </ ul >
0 commit comments