@@ -2,9 +2,10 @@ import type { MinecraftCredentials } from '@/bindings.gen';
22import PlayerHead from '@/components/content/PlayerHead' ;
33import { bindings } from '@/main' ;
44import { useCommand } from '@onelauncher/common' ;
5- import { Button } from '@onelauncher/common/components' ;
5+ import { Button , ContextMenu } from '@onelauncher/common/components' ;
66import { Link } from '@tanstack/react-router' ;
77import { PlusIcon , Settings01Icon } from '@untitled-theme/icons-react' ;
8+ import { useRef , useState } from 'react' ;
89import { twMerge } from 'tailwind-merge' ;
910
1011function AccountPopup ( ) {
@@ -71,10 +72,23 @@ function AccountEntry({
7172 user : MinecraftCredentials ;
7273 loggedIn ?: boolean ;
7374} ) {
75+ const ref = useRef < HTMLDivElement > ( null ) ;
76+ const [ isOpen , setOpen ] = useState ( false ) ;
77+
78+ const removeUserCommand = useCommand (
79+ 'removeUser' ,
80+ ( ) => bindings . core . removeUser ( user . id ) ,
81+ {
82+ enabled : false ,
83+ subscribed : false ,
84+ } ,
85+ ) ;
86+
7487 return (
7588 < div
7689 className = { twMerge ( 'flex flex-row justify-between p-2 rounded-lg' , ! loggedIn && 'hover:bg-component-bg-hover active:bg-component-bg-pressed hover:text-fg-primary-hover' ) }
7790 onClick = { onClick }
91+ ref = { ref }
7892 >
7993 < div className = "flex flex-1 flex-row justify-start gap-x-3" >
8094 < PlayerHead className = "h-8 w-8 rounded-md" uuid = { user . id } />
@@ -85,6 +99,16 @@ function AccountEntry({
8599 </ div >
86100 </ div >
87101 </ div >
102+
103+ < ContextMenu
104+ isOpen = { isOpen }
105+ setOpen = { setOpen }
106+ triggerRef = { ref }
107+ >
108+ < ContextMenu . Item className = "text-red-500 rounded-sm px-3 py-1 hover:bg-component-bg-hover" onAction = { removeUserCommand . refetch } >
109+ Delete
110+ </ ContextMenu . Item >
111+ </ ContextMenu >
88112 </ div >
89113 ) ;
90114}
0 commit comments