diff options
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 22 | ||||
| -rw-r--r-- | packages/cli/src/ui/hooks/slashCommandProcessor.ts | 27 | ||||
| -rw-r--r-- | packages/cli/src/ui/hooks/useGeminiStream.ts | 2 |
3 files changed, 29 insertions, 22 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 8b219778..8aaa1018 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -36,34 +36,32 @@ export const App = ({ config, cliVersion }: AppProps) => { const [history, setHistory] = useState<HistoryItem[]>([]); const [startupWarnings, setStartupWarnings] = useState<string[]>([]); const { + isThemeDialogOpen, + openThemeDialog, + handleThemeSelect, + handleThemeHighlight, + } = useThemeCommand(); + + const { streamingState, submitQuery, initError, debugMessage, slashCommands, - } = useGeminiStream(setHistory, config); + } = useGeminiStream(setHistory, config, openThemeDialog); const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState); - const { - isThemeDialogOpen, - openThemeDialog, - handleThemeSelect, - handleThemeHighlight, - } = useThemeCommand(); - useStartupWarnings(setStartupWarnings); const handleFinalSubmit = useCallback( (submittedValue: string) => { const trimmedValue = submittedValue.trim(); - if (trimmedValue === '/theme') { - openThemeDialog(); - } else if (trimmedValue.length > 0) { + if (trimmedValue.length > 0) { submitQuery(submittedValue); } }, - [openThemeDialog, submitQuery], + [submitQuery], ); const userMessages = useMemo( diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts index f7f93b9d..89649810 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts @@ -30,18 +30,10 @@ export const useSlashCommandProcessor = ( setHistory: React.Dispatch<React.SetStateAction<HistoryItem[]>>, setDebugMessage: React.Dispatch<React.SetStateAction<string>>, getNextMessageId: (baseTimestamp: number) => number, + openThemeDialog: () => void, ) => { const slashCommands: SlashCommand[] = [ { - name: 'clear', - description: 'clear the screen', - action: (_value: PartListUnion) => { - // This just clears the *UI* history, not the model history. - setDebugMessage('Clearing terminal.'); - setHistory((_) => []); - }, - }, - { name: 'help', description: 'for help on gemini-code', action: (_value: PartListUnion) => { @@ -57,6 +49,22 @@ export const useSlashCommandProcessor = ( }, }, { + name: 'clear', + description: 'clear the screen', + action: (_value: PartListUnion) => { + // This just clears the *UI* history, not the model history. + setDebugMessage('Clearing terminal.'); + setHistory((_) => []); + }, + }, + { + name: 'theme', + description: 'change the theme', + action: (_value: PartListUnion) => { + openThemeDialog(); + }, + }, + { name: 'exit', description: '', action: (_value: PartListUnion) => { @@ -85,7 +93,6 @@ export const useSlashCommandProcessor = ( process.exit(0); }, }, - // Removed /theme command, handled in App.tsx ]; // Checks if the query is a slash command and executes the command if it is. diff --git a/packages/cli/src/ui/hooks/useGeminiStream.ts b/packages/cli/src/ui/hooks/useGeminiStream.ts index 89cd5223..9e2901ec 100644 --- a/packages/cli/src/ui/hooks/useGeminiStream.ts +++ b/packages/cli/src/ui/hooks/useGeminiStream.ts @@ -49,6 +49,7 @@ const addHistoryItem = ( export const useGeminiStream = ( setHistory: React.Dispatch<React.SetStateAction<HistoryItem[]>>, config: Config, + openThemeDialog: () => void, ) => { const toolRegistry = config.getToolRegistry(); const [streamingState, setStreamingState] = useState<StreamingState>( @@ -74,6 +75,7 @@ export const useGeminiStream = ( setHistory, setDebugMessage, getNextMessageId, + openThemeDialog, ); const { handleShellCommand } = useShellCommandProcessor( |
