Skip to content

Commit d070717

Browse files
committed
add context menu to the account quick select menu
1 parent 4286f05 commit d070717

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

apps/onelauncher/frontend/src/components/overlay/popups/AccountPopup.tsx

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import type { MinecraftCredentials } from '@/bindings.gen';
22
import PlayerHead from '@/components/content/PlayerHead';
33
import { bindings } from '@/main';
44
import { useCommand } from '@onelauncher/common';
5-
import { Button } from '@onelauncher/common/components';
5+
import { Button, ContextMenu } from '@onelauncher/common/components';
66
import { Link } from '@tanstack/react-router';
77
import { PlusIcon, Settings01Icon } from '@untitled-theme/icons-react';
8+
import { useRef, useState } from 'react';
89
import { twMerge } from 'tailwind-merge';
910

1011
function 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
}

packages/web_common/src/components/ContextMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,4 @@ export function ContextMenu<T extends object>({
8787
);
8888
}
8989

90-
ContextMenu.Item = <T extends object>({ className, ...rest }: MenuItemProps<T>) => <MenuItem {...rest} />;
90+
ContextMenu.Item = <T extends object>({ className, ...rest }: MenuItemProps<T>) => <MenuItem {...rest} className={className} />;

0 commit comments

Comments
 (0)