fix(cli): restore first-launch theme prompt (#703)

This commit is contained in:
Jacob Richman 2025-06-02 19:09:11 -07:00 committed by GitHub
parent 2ab7e3da71
commit 447826ab40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 43 additions and 11 deletions

View file

@ -26,18 +26,23 @@ export const useThemeCommand = (
const effectiveTheme = loadedSettings.merged.theme;
// Initial state: Open dialog if no theme is set in either user or workspace settings
const [isThemeDialogOpen, setIsThemeDialogOpen] = useState(false);
const [isThemeDialogOpen, setIsThemeDialogOpen] = useState(
effectiveTheme === undefined, // Open dialog if no theme is set initially
);
// TODO: refactor how theme's are accessed to avoid requiring a forced render.
const [, setForceRender] = useState(0);
// Apply initial theme on component mount
useEffect(() => {
if (!themeManager.setActiveTheme(effectiveTheme)) {
// If theme is not found during initial load, open the theme selection dialog and set error message
setIsThemeDialogOpen(true);
setThemeError(`Theme "${effectiveTheme}" not found.`);
} else {
setThemeError(null); // Clear any previous theme error on success
// Only try to set a theme if one is actually defined.
// If effectiveTheme was undefined, the dialog is already open due to useState above.
if (effectiveTheme !== undefined) {
if (!themeManager.setActiveTheme(effectiveTheme)) {
setIsThemeDialogOpen(true);
setThemeError(`Theme "${effectiveTheme}" not found.`);
} else {
setThemeError(null); // Clear any previous theme error on success
}
}
}, [effectiveTheme, setThemeError]); // Re-run if effectiveTheme or setThemeError changes