From 72b6e6fb360741c1d5a45f39c0319f7b6832f368 Mon Sep 17 00:00:00 2001 From: Charles Vien Date: Sun, 29 Mar 2026 10:18:22 +0100 Subject: [PATCH 1/2] Open active file in external app instead of repo directory --- .../components/ExternalAppsOpener.tsx | 16 +++++++-- .../task-detail/components/TaskDetail.tsx | 33 ++++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/apps/code/src/renderer/features/task-detail/components/ExternalAppsOpener.tsx b/apps/code/src/renderer/features/task-detail/components/ExternalAppsOpener.tsx index 11055e041..9725ae35d 100644 --- a/apps/code/src/renderer/features/task-detail/components/ExternalAppsOpener.tsx +++ b/apps/code/src/renderer/features/task-detail/components/ExternalAppsOpener.tsx @@ -4,7 +4,7 @@ import { ChevronDownIcon } from "@radix-ui/react-icons"; import { Button, DropdownMenu, Flex, Text } from "@radix-ui/themes"; import { SHORTCUTS } from "@renderer/constants/keyboard-shortcuts"; import { handleExternalAppAction } from "@utils/handleExternalAppAction"; -import { useCallback } from "react"; +import { useCallback, useState } from "react"; import { useHotkeys } from "react-hotkeys-hook"; const THUMBNAIL_ICON_SIZE = 20; @@ -74,6 +74,8 @@ export function ExternalAppsOpener({ [handleCopyPath], ); + const [dropdownOpen, setDropdownOpen] = useState(false); + if (!targetPath) { return null; } @@ -81,7 +83,17 @@ export function ExternalAppsOpener({ const isReady = !isLoading && detectedApps.length > 0; return ( - + + {dropdownOpen && ( +
+ )}