@@ -5,23 +5,22 @@ import { TopBar } from "@components/ui/topnav/TopBar";
55import { CommandMenu } from "@features/command/components/CommandMenu" ;
66import { SettingsView } from "@features/settings/components/SettingsView" ;
77import { TaskDetail } from "@features/task-detail/components/TaskDetail" ;
8+ import { TaskInput } from "@features/task-detail/components/TaskInput" ;
89import { TaskList } from "@features/task-list/components/TaskList" ;
910import { useIntegrations } from "@hooks/useIntegrations" ;
1011import { Box , Flex } from "@radix-ui/themes" ;
1112import type { Task } from "@shared/types" ;
12- import { useLayoutStore } from "@stores/layoutStore" ;
1313import { useNavigationStore } from "@stores/navigationStore" ;
1414import { useCallback , useEffect , useState } from "react" ;
1515import { useHotkeys } from "react-hotkeys-hook" ;
1616import { Toaster } from "sonner" ;
1717
1818export function MainLayout ( ) {
19- const { setCliMode } = useLayoutStore ( ) ;
2019 const {
2120 view,
2221 toggleSettings,
23- navigateToTaskList,
2422 navigateToTask,
23+ navigateToTaskInput,
2524 goBack,
2625 goForward,
2726 } = useNavigationStore ( ) ;
@@ -33,9 +32,8 @@ export function MainLayout() {
3332 } , [ toggleSettings ] ) ;
3433
3534 const handleFocusTaskMode = useCallback ( ( ) => {
36- navigateToTaskList ( ) ;
37- setCliMode ( "task" ) ;
38- } , [ setCliMode , navigateToTaskList ] ) ;
35+ navigateToTaskInput ( ) ;
36+ } , [ navigateToTaskInput ] ) ;
3937
4038 useHotkeys ( "mod+k" , ( ) => setCommandMenuOpen ( ( prev ) => ! prev ) , {
4139 enabled : ! commandMenuOpen ,
@@ -52,14 +50,19 @@ export function MainLayout() {
5250 useHotkeys ( "mod+]" , ( ) => goForward ( ) ) ;
5351
5452 useEffect ( ( ) => {
55- const unsubscribe = window . electronAPI ?. onOpenSettings ( ( ) => {
53+ const unsubscribeSettings = window . electronAPI ?. onOpenSettings ( ( ) => {
5654 handleOpenSettings ( ) ;
5755 } ) ;
5856
57+ const unsubscribeNewTask = window . electronAPI ?. onNewTask ( ( ) => {
58+ handleFocusTaskMode ( ) ;
59+ } ) ;
60+
5961 return ( ) => {
60- unsubscribe ?.( ) ;
62+ unsubscribeSettings ?.( ) ;
63+ unsubscribeNewTask ?.( ) ;
6164 } ;
62- } , [ handleOpenSettings ] ) ;
65+ } , [ handleOpenSettings , handleFocusTaskMode ] ) ;
6366
6467 const handleSelectTask = ( task : Task ) => {
6568 navigateToTask ( task ) ;
@@ -76,6 +79,8 @@ export function MainLayout() {
7679 < TaskList onSelectTask = { handleSelectTask } />
7780 ) }
7881
82+ { view . type === "task-input" && < TaskInput /> }
83+
7984 { view . type === "task-detail" && view . data && (
8085 < TaskDetail key = { view . data . id } task = { view . data } />
8186 ) }
0 commit comments