33 useDuplicateTask ,
44} from "@features/tasks/hooks/useTasks" ;
55import { logger } from "@renderer/lib/logger" ;
6+ import { useNavigationStore } from "@renderer/stores/navigationStore" ;
67import type { Task } from "@shared/types" ;
78import { handleExternalAppAction } from "@utils/handleExternalAppAction" ;
89import { useCallback , useState } from "react" ;
@@ -15,6 +16,7 @@ export function useTaskContextMenu() {
1516 const [ renameDialogOpen , setRenameDialogOpen ] = useState ( false ) ;
1617 const duplicateTask = useDuplicateTask ( ) ;
1718 const deleteTask = useDeleteTask ( ) ;
19+ const { view, navigateToTaskInput } = useNavigationStore ( ) ;
1820
1921 const showContextMenu = useCallback (
2022 async ( task : Task , event : React . MouseEvent , worktreePath ?: string ) => {
@@ -48,6 +50,10 @@ export function useTaskContextMenu() {
4850 await duplicateTask . mutateAsync ( task . id ) ;
4951 break ;
5052 case "delete" :
53+ // navigate away first if we are viewing this task
54+ if ( view . type === "task-detail" && view . data ?. id === task . id ) {
55+ navigateToTaskInput ( ) ;
56+ }
5157 await deleteTask . mutateAsync ( task . id ) ;
5258 break ;
5359 }
@@ -68,7 +74,7 @@ export function useTaskContextMenu() {
6874 log . error ( "Failed to show context menu" , error ) ;
6975 }
7076 } ,
71- [ duplicateTask , deleteTask ] ,
77+ [ duplicateTask , deleteTask , view , navigateToTaskInput ] ,
7278 ) ;
7379
7480 return {
0 commit comments