@@ -4,6 +4,7 @@ import { useCallback, useEffect, useState } from "react";
44import { useHotkeys } from "react-hotkeys-hook" ;
55import { RecordingsView } from "@/renderer/features/recordings" ;
66import { useIntegrations } from "../hooks/useIntegrations" ;
7+ import { useLayoutStore } from "../stores/layoutStore" ;
78import { useTabStore } from "../stores/tabStore" ;
89import { CommandMenu } from "./command" ;
910import { SettingsView } from "./SettingsView" ;
@@ -16,6 +17,7 @@ import { TaskList } from "./tasks/TaskList";
1617export function MainLayout ( ) {
1718 const { activeTabId, tabs, createTab, setActiveTab, closeTab } =
1819 useTabStore ( ) ;
20+ const { setCliMode } = useLayoutStore ( ) ;
1921 useIntegrations ( ) ;
2022 const [ commandMenuOpen , setCommandMenuOpen ] = useState ( false ) ;
2123 const [ taskCreateOpen , setTaskCreateOpen ] = useState ( false ) ;
@@ -37,6 +39,20 @@ export function MainLayout() {
3739 }
3840 } , [ tabs , activeTabId , setActiveTab , createTab , closeTab ] ) ;
3941
42+ const handleFocusTaskMode = useCallback ( ( ) => {
43+ // Find the Tasks tab or use the first task-list tab
44+ const tasksTab = tabs . find ( ( tab ) => tab . type === "task-list" ) ;
45+
46+ if ( tasksTab ) {
47+ setActiveTab ( tasksTab . id ) ;
48+ }
49+
50+ // Switch to task mode
51+ setCliMode ( "task" ) ;
52+
53+ // Note: The auto-focus effect in CliTaskPanel will handle focusing the editor
54+ } , [ tabs , setActiveTab , setCliMode ] ) ;
55+
4056 useHotkeys ( "mod+k" , ( ) => setCommandMenuOpen ( ( prev ) => ! prev ) , {
4157 enabled : ! commandMenuOpen ,
4258 } ) ;
@@ -46,7 +62,7 @@ export function MainLayout() {
4662 useHotkeys ( "mod+p" , ( ) => setCommandMenuOpen ( ( prev ) => ! prev ) , {
4763 enabled : ! commandMenuOpen ,
4864 } ) ;
49- useHotkeys ( "mod+n" , ( ) => setTaskCreateOpen ( true ) ) ;
65+ useHotkeys ( "mod+n" , ( ) => handleFocusTaskMode ( ) ) ;
5066 useHotkeys ( "mod+," , ( ) => handleOpenSettings ( ) ) ;
5167
5268 useEffect ( ( ) => {
@@ -88,10 +104,7 @@ export function MainLayout() {
88104
89105 < Box flexGrow = "1" overflow = "hidden" >
90106 { activeTab ?. type === "task-list" && (
91- < TaskList
92- onSelectTask = { handleSelectTask }
93- onNewTask = { ( ) => setTaskCreateOpen ( true ) }
94- />
107+ < TaskList onSelectTask = { handleSelectTask } />
95108 ) }
96109
97110 { activeTab ?. type === "task-detail" && activeTab . data ? (
@@ -105,11 +118,7 @@ export function MainLayout() {
105118
106119 < StatusBar onOpenSettings = { handleOpenSettings } />
107120
108- < CommandMenu
109- open = { commandMenuOpen }
110- onOpenChange = { setCommandMenuOpen }
111- onCreateTask = { ( ) => setTaskCreateOpen ( true ) }
112- />
121+ < CommandMenu open = { commandMenuOpen } onOpenChange = { setCommandMenuOpen } />
113122 < TaskCreate open = { taskCreateOpen } onOpenChange = { setTaskCreateOpen } />
114123 </ Flex >
115124 ) ;
0 commit comments