diff --git a/src/tui/App.tsx b/src/tui/App.tsx index 4e442c01..9aaa8ad8 100644 --- a/src/tui/App.tsx +++ b/src/tui/App.tsx @@ -24,8 +24,8 @@ */ import React, { useState, useEffect, useCallback } from 'react'; -import { Box, Text, useApp, useInput, useStdout } from 'ink'; -import { execSync, spawnSync } from 'child_process'; +import { Box, useApp, useInput, useStdout } from 'ink'; +import { spawnSync } from 'child_process'; import { StartScreen } from './components/StartScreen.js'; import { TabBar } from './components/TabBar.js'; import { TerminalView } from './components/TerminalView.js'; @@ -118,21 +118,9 @@ export function App(): React.ReactElement { return; } - // Start screen specific inputs + // Start screen specific inputs - handled by StartScreen component + // Only number keys for quick session selection are handled here if (viewMode === 'start') { - if (input === 'q') { - exit(); - return; - } - if (input === 'n') { - handleCreateSession(); - return; - } - if (input === 'r') { - refreshSessions(); - return; - } - // Number keys to select session const num = parseInt(input, 10); if (!isNaN(num) && num >= 1 && num <= sessions.length) { handleSelectSession(sessions[num - 1]); diff --git a/src/tui/components/HelpOverlay.tsx b/src/tui/components/HelpOverlay.tsx index 4db56470..4d04848b 100644 --- a/src/tui/components/HelpOverlay.tsx +++ b/src/tui/components/HelpOverlay.tsx @@ -75,7 +75,7 @@ const SHORTCUT_GROUPS: ShortcutGroup[] = [ * @param props.onClose - Callback invoked when overlay should close * @returns The help overlay element */ -export function HelpOverlay({ onClose }: HelpOverlayProps): React.ReactElement { +export function HelpOverlay({ onClose: _onClose }: HelpOverlayProps): React.ReactElement { return ( {/* Header */} diff --git a/src/tui/components/StartScreen.tsx b/src/tui/components/StartScreen.tsx index db310713..c273471b 100644 --- a/src/tui/components/StartScreen.tsx +++ b/src/tui/components/StartScreen.tsx @@ -125,6 +125,24 @@ export function StartScreen({ onDeleteSession(sessions[selectedIndex]); return; } + + // 'n' to create new session + if (input === 'n') { + onCreateSession(); + return; + } + + // 'r' to refresh session list + if (input === 'r') { + onRefresh(); + return; + } + + // 'q' to quit + if (input === 'q') { + onExit(); + return; + } }); return ( diff --git a/src/tui/hooks/useSessionManager.ts b/src/tui/hooks/useSessionManager.ts index a352f54b..5efabeb0 100644 --- a/src/tui/hooks/useSessionManager.ts +++ b/src/tui/hooks/useSessionManager.ts @@ -24,7 +24,7 @@ */ import { useState, useEffect, useCallback, useRef } from 'react'; -import { existsSync, readFileSync, writeFileSync, watchFile, unwatchFile, unlinkSync } from 'fs'; +import { existsSync, readFileSync, watchFile, unwatchFile, unlinkSync } from 'fs'; import { homedir } from 'os'; import { join } from 'path'; import { execSync } from 'child_process'; diff --git a/src/tui/index.tsx b/src/tui/index.tsx index 0c3b8b1d..a88169b9 100644 --- a/src/tui/index.tsx +++ b/src/tui/index.tsx @@ -24,7 +24,6 @@ * @see {@link ./hooks/useSessionManager.ts} for state management */ -import React from 'react'; import { render } from 'ink'; import { App } from './App.js';