summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks')
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.test.ts4
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.ts7
-rw-r--r--packages/cli/src/ui/hooks/useSettingsCommand.ts25
3 files changed, 36 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
index 37407689..66c1b883 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
@@ -147,6 +147,7 @@ describe('useSlashCommandProcessor', () => {
vi.fn(), // toggleCorgiMode
mockSetQuittingMessages,
vi.fn(), // openPrivacyNotice
+ vi.fn(), // openSettingsDialog
vi.fn(), // toggleVimEnabled
setIsProcessing,
),
@@ -864,6 +865,9 @@ describe('useSlashCommandProcessor', () => {
vi.fn(), // toggleCorgiMode
mockSetQuittingMessages,
vi.fn(), // openPrivacyNotice
+
+ vi.fn(), // openSettingsDialog
+ vi.fn(), // toggleVimEnabled
vi.fn().mockResolvedValue(false), // toggleVimEnabled
vi.fn(), // setIsProcessing
),
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
index ca08abb1..b4ce0d4d 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
@@ -50,6 +50,7 @@ export const useSlashCommandProcessor = (
toggleCorgiMode: () => void,
setQuittingMessages: (message: HistoryItem[]) => void,
openPrivacyNotice: () => void,
+ openSettingsDialog: () => void,
toggleVimEnabled: () => Promise<boolean>,
setIsProcessing: (isProcessing: boolean) => void,
setGeminiMdFileCount: (count: number) => void,
@@ -359,6 +360,11 @@ export const useSlashCommandProcessor = (
case 'privacy':
openPrivacyNotice();
return { type: 'handled' };
+ case 'settings':
+ openSettingsDialog();
+ return { type: 'handled' };
+ case 'help':
+ return { type: 'handled' };
default: {
const unhandled: never = result.dialog;
throw new Error(
@@ -512,6 +518,7 @@ export const useSlashCommandProcessor = (
openPrivacyNotice,
openEditorDialog,
setQuittingMessages,
+ openSettingsDialog,
setShellConfirmationRequest,
setSessionShellAllowlist,
setIsProcessing,
diff --git a/packages/cli/src/ui/hooks/useSettingsCommand.ts b/packages/cli/src/ui/hooks/useSettingsCommand.ts
new file mode 100644
index 00000000..42f535df
--- /dev/null
+++ b/packages/cli/src/ui/hooks/useSettingsCommand.ts
@@ -0,0 +1,25 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { useState, useCallback } from 'react';
+
+export function useSettingsCommand() {
+ const [isSettingsDialogOpen, setIsSettingsDialogOpen] = useState(false);
+
+ const openSettingsDialog = useCallback(() => {
+ setIsSettingsDialogOpen(true);
+ }, []);
+
+ const closeSettingsDialog = useCallback(() => {
+ setIsSettingsDialogOpen(false);
+ }, []);
+
+ return {
+ isSettingsDialogOpen,
+ openSettingsDialog,
+ closeSettingsDialog,
+ };
+}