@@ -24,6 +24,8 @@ import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
2424import { ServerPermissions } from '@/types/permissions' ;
2525import PlusIcon from '@/components/icons/PlusIcon' ;
2626import GearIcon from '@/components/icons/GearIcon' ;
27+ import { deleteServer , leaveServer } from '@/services/server.service' ;
28+ import TrashIcon from '@/components/icons/TrashIcon' ;
2729
2830export default function Server ( {
2931 server,
@@ -57,6 +59,8 @@ export default function Server({
5759 handleAsync ( ) ;
5860 } , [ server , supabase ] ) ;
5961
62+ console . log ( ( serverPermissions & 1 ) === 0 ? 'Not owner' : 'Owner' ) ;
63+
6064 if ( expand ) {
6165 return (
6266 < div className = "relative overflow-x-visible" >
@@ -127,6 +131,35 @@ export default function Server({
127131 < span className = "ml-2 w-full" > Server Settings</ span >
128132 </ div >
129133 </ DropdownMenu . Item >
134+ < DropdownMenu . Separator className = "DropdownMenuSeparator" />
135+ { ( serverPermissions & 1 ) === 0 && (
136+ < DropdownMenu . Item asChild
137+ className = "flex justify-center items-center text-red-500 hover:text-grey-300 cursor-pointer"
138+ onClick = { async ( ) => {
139+ await leaveServer ( supabase , user ! . id , server . id ) ;
140+ } }
141+ hidden = { ( serverPermissions & 1 ) === 1 }
142+ >
143+ < div className = "flex flex-row w-full" >
144+ < GearIcon width = { 5 } height = { 5 } />
145+ < span className = "ml-2 w-full" > Leave Server</ span >
146+ </ div >
147+ </ DropdownMenu . Item >
148+ ) }
149+ { ( serverPermissions & 1 ) === 1 && (
150+ < DropdownMenu . Item asChild
151+ className = "flex justify-center items-center text-red-500 hover:text-grey-300 cursor-pointer"
152+ onClick = { async ( ) => {
153+ // TODO: Add confirmation modal
154+ await deleteServer ( supabase , server . id ) ;
155+ } }
156+ >
157+ < div className = "flex flex-row w-full" >
158+ < TrashIcon />
159+ < span className = "ml-2 w-full" > Delete Server</ span >
160+ </ div >
161+ </ DropdownMenu . Item >
162+ ) }
130163 </ DropdownMenu . Content >
131164 </ DropdownMenu . Portal >
132165 </ DropdownMenu . Root >
0 commit comments