authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-14 22:38:54-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-14 23:35:48-08:00
log7690837f38c56b79d26f61b16fc60ad671dcc1ee
treebbf5ad7206f9f790519413193cff85a3ae3e5ac9
parent85eb379dd769db2f949a3352acca6537b02e89cf

Fix disabled git action tooltip hover handling

- Use the quick action button itself as the popover trigger - Keep hover tooltips working on disabled controls via pointer-events override - Remove focus/blur tab-stop handlers from disabled tooltip wrappers

1 files changed, 7 insertions(+), 18 deletions(-)

apps/web/src/components/GitActionsControl.tsx+7-18
...@@ -459,26 +459,18 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp...@@ -459,26 +459,18 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp
459 <Popover open={isQuickActionPopoverOpen} onOpenChange={setIsQuickActionPopoverOpen}>459 <Popover open={isQuickActionPopoverOpen} onOpenChange={setIsQuickActionPopoverOpen}>
460 <PopoverTrigger460 <PopoverTrigger
461 render={461 render={
462 <span462 <Button
463 className="inline-flex cursor-not-allowed"463 variant="outline"
464 onBlur={() => setIsQuickActionPopoverOpen(false)}464 size="xs"
465 onFocus={() => setIsQuickActionPopoverOpen(true)}465 disabled={isGitActionRunning || quickAction.disabled}
466 className="cursor-not-allowed disabled:cursor-not-allowed disabled:pointer-events-auto"
466 onMouseEnter={() => setIsQuickActionPopoverOpen(true)}467 onMouseEnter={() => setIsQuickActionPopoverOpen(true)}
467 onMouseLeave={() => setIsQuickActionPopoverOpen(false)}468 onMouseLeave={() => setIsQuickActionPopoverOpen(false)}
468 tabIndex={0}
469 />469 />
470 }470 }
471 >471 >
472 <Button472 <GitQuickActionIcon quickAction={quickAction} />
473 variant="outline"473 {quickAction.label}
474 size="xs"
475 disabled={isGitActionRunning || quickAction.disabled}
476 className="cursor-not-allowed disabled:cursor-not-allowed"
477 onClick={runQuickAction}
478 >
479 <GitQuickActionIcon quickAction={quickAction} />
480 {quickAction.label}
481 </Button>
482 </PopoverTrigger>474 </PopoverTrigger>
483 <PopoverPopup tooltipStyle side="bottom" align="start">475 <PopoverPopup tooltipStyle side="bottom" align="start">
484 {quickActionDisabledReason}476 {quickActionDisabledReason}
...@@ -522,11 +514,8 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp...@@ -522,11 +514,8 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp
522 render={514 render={
523 <span515 <span
524 className="inline-flex w-full cursor-not-allowed"516 className="inline-flex w-full cursor-not-allowed"
525 onBlur={() => setOpenDisabledMenuItemId(null)}
526 onFocus={() => setOpenDisabledMenuItemId(item.id)}
527 onMouseEnter={() => setOpenDisabledMenuItemId(item.id)}517 onMouseEnter={() => setOpenDisabledMenuItemId(item.id)}
528 onMouseLeave={() => setOpenDisabledMenuItemId(null)}518 onMouseLeave={() => setOpenDisabledMenuItemId(null)}
529 tabIndex={0}
530 />519 />
531 }520 }
532 >521 >