Skip to content

Commit e9d63ed

Browse files
committed
fix: make entire card area clickable in groups, hosts, nodes, and cores
1 parent 65a9ca9 commit e9d63ed

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

dashboard/src/components/groups/Group.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ export default function Group({ group, onEdit, onToggleStatus }: GroupProps) {
7575

7676
return (
7777
<>
78-
<Card className="px-4 py-5 relative group h-full hover:bg-accent transition-colors">
78+
<Card className="px-4 py-5 relative group h-full hover:bg-accent transition-colors cursor-pointer" onClick={() => onEdit(group)}>
7979
<div className="flex items-center gap-3">
80-
<div className="flex-1 min-w-0 cursor-pointer" onClick={() => onEdit(group)}>
80+
<div className="flex-1 min-w-0">
8181
<div className="flex items-center gap-2">
8282
<div className={cn('min-h-2 min-w-2 rounded-full', group.is_disabled ? 'bg-red-500' : 'bg-green-500')} />
8383
<div className="flex items-center gap-2">
@@ -89,7 +89,8 @@ export default function Group({ group, onEdit, onToggleStatus }: GroupProps) {
8989
{t('admins.total.users')}: {group.total_users || 0}
9090
</div>
9191
</div>
92-
<DropdownMenu>
92+
<div onClick={(e) => e.stopPropagation()}>
93+
<DropdownMenu>
9394
<DropdownMenuTrigger asChild>
9495
<Button variant="ghost" size="icon">
9596
<MoreVertical className="h-4 w-4" />
@@ -121,6 +122,7 @@ export default function Group({ group, onEdit, onToggleStatus }: GroupProps) {
121122
</DropdownMenuItem>
122123
</DropdownMenuContent>
123124
</DropdownMenu>
125+
</div>
124126
</div>
125127
</Card>
126128

dashboard/src/components/hosts/SortableHost.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export default function SortableHost({ host, onEdit, onDuplicate, onDataChanged,
154154

155155
return (
156156
<div ref={setNodeRef} className="cursor-default" style={style} {...attributes}>
157-
<Card className="p-4 relative group h-full hover:bg-accent transition-colors">
157+
<Card className="p-4 relative group h-full hover:bg-accent transition-colors cursor-pointer" onClick={() => onEdit(host)}>
158158
<div className="flex items-center gap-3">
159159
<button
160160
style={{ cursor: disabled ? 'not-allowed' : cursor }}
@@ -168,7 +168,7 @@ export default function SortableHost({ host, onEdit, onDuplicate, onDataChanged,
168168
<GripVertical className="h-5 w-5" />
169169
<span className="sr-only">Drag to reorder</span>
170170
</button>
171-
<div className="flex-1 min-w-0 cursor-pointer" onClick={() => onEdit(host)}>
171+
<div className="flex-1 min-w-0">
172172
<div className="flex items-center gap-2">
173173
<div className={cn('min-h-2 min-w-2 rounded-full', host.is_disabled ? 'bg-red-500' : 'bg-green-500')} />
174174
<div className="font-medium truncate">{host.remark ?? ''}</div>
@@ -185,7 +185,8 @@ export default function SortableHost({ host, onEdit, onDuplicate, onDataChanged,
185185
<span dir="ltr">{host.inbound_tag ?? ''}</span>
186186
</div>
187187
</div>
188-
<DropdownMenu>
188+
<div onClick={(e) => e.stopPropagation()}>
189+
<DropdownMenu>
189190
<DropdownMenuTrigger asChild>
190191
<Button variant="ghost" size="icon">
191192
<MoreVertical className="h-4 w-4" />
@@ -226,6 +227,7 @@ export default function SortableHost({ host, onEdit, onDuplicate, onDataChanged,
226227
</DropdownMenuItem>
227228
</DropdownMenuContent>
228229
</DropdownMenu>
230+
</div>
229231
</div>
230232
</Card>
231233

dashboard/src/components/nodes/Node.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ export default function Node({ node, onEdit, onToggleStatus }: NodeProps) {
116116

117117
return (
118118
<>
119-
<Card className="p-4 relative group h-full hover:bg-accent transition-colors">
119+
<Card className="p-4 relative group h-full hover:bg-accent transition-colors cursor-pointer" onClick={() => onEdit(node)}>
120120
<div className="flex items-center gap-3">
121-
<div className="flex-1 min-w-0 cursor-pointer" onClick={() => onEdit(node)}>
121+
<div className="flex-1 min-w-0">
122122
<div className="flex items-center gap-2">
123123
<div
124124
className={cn(
@@ -148,7 +148,8 @@ export default function Node({ node, onEdit, onToggleStatus }: NodeProps) {
148148
</div>
149149
)}
150150
</div>
151-
<DropdownMenu>
151+
<div onClick={(e) => e.stopPropagation()}>
152+
<DropdownMenu>
152153
<DropdownMenuTrigger asChild>
153154
<Button variant="ghost" size="icon">
154155
<MoreVertical className="h-4 w-4" />
@@ -219,6 +220,7 @@ export default function Node({ node, onEdit, onToggleStatus }: NodeProps) {
219220
</DropdownMenuItem>
220221
</DropdownMenuContent>
221222
</DropdownMenu>
223+
</div>
222224
</div>
223225
</Card>
224226

dashboard/src/components/settings/Core.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,18 @@ export default function Core({ core, onEdit, onDuplicate, onDelete }: CoreProps)
2525
}
2626

2727
return (
28-
<Card className="px-4 py-5 relative group h-full hover:bg-accent transition-colors">
28+
<Card className="px-4 py-5 relative group h-full hover:bg-accent transition-colors cursor-pointer" onClick={() => onEdit(core)}>
2929
<div className="flex items-center gap-3">
30-
<div className="flex-1 min-w-0 cursor-pointer" onClick={() => onEdit(core)}>
30+
<div className="flex-1 min-w-0">
3131
<div className="flex items-center justify-between gap-2">
3232
<div className="flex items-center gap-2">
3333
<div className={cn('min-h-2 min-w-2 rounded-full', 'bg-green-500')} />
3434
<div className="font-medium">{core.name}</div>
3535
</div>
3636
</div>
3737
</div>
38-
<DropdownMenu>
38+
<div onClick={(e) => e.stopPropagation()}>
39+
<DropdownMenu>
3940
<DropdownMenuTrigger asChild>
4041
<Button variant="ghost" size="icon">
4142
<MoreVertical className="h-4 w-4" />
@@ -68,6 +69,7 @@ export default function Core({ core, onEdit, onDuplicate, onDelete }: CoreProps)
6869
</DropdownMenuItem>
6970
</DropdownMenuContent>
7071
</DropdownMenu>
72+
</div>
7173
</div>
7274
</Card>
7375
)

0 commit comments

Comments
 (0)