diff options
Diffstat (limited to 'packages/cli/src/ui/hooks/useThemeCommand.ts')
| -rw-r--r-- | packages/cli/src/ui/hooks/useThemeCommand.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/cli/src/ui/hooks/useThemeCommand.ts b/packages/cli/src/ui/hooks/useThemeCommand.ts index 85bd4906..66ec9eda 100644 --- a/packages/cli/src/ui/hooks/useThemeCommand.ts +++ b/packages/cli/src/ui/hooks/useThemeCommand.ts @@ -11,6 +11,7 @@ interface UseThemeCommandReturn { isThemeDialogOpen: boolean; openThemeDialog: () => void; handleThemeSelect: (themeName: string) => void; + handleThemeHighlight: (themeName: string) => void; } export const useThemeCommand = (): UseThemeCommandReturn => { @@ -21,12 +22,22 @@ export const useThemeCommand = (): UseThemeCommandReturn => { setIsThemeDialogOpen(true); }, []); - const handleThemeSelect = useCallback((themeName: string) => { + function applyTheme(themeName: string) { try { themeManager.setActiveTheme(themeName); setForceRender((v) => v + 1); // Trigger potential re-render } catch (error) { console.error(`Error setting theme: ${error}`); + } + } + + const handleThemeHighlight = useCallback((themeName: string) => { + applyTheme(themeName); + }, []); + + const handleThemeSelect = useCallback((themeName: string) => { + try { + applyTheme(themeName); } finally { setIsThemeDialogOpen(false); // Close the dialog } @@ -36,5 +47,6 @@ export const useThemeCommand = (): UseThemeCommandReturn => { isThemeDialogOpen, openThemeDialog, handleThemeSelect, + handleThemeHighlight, }; }; |
