Reset to base theme when no default theme is set and leaving UUID/handle theme

This commit is contained in:
Alexandre Vryghem
2023-07-30 19:43:20 +02:00
parent 887eacbfa8
commit ea677bda74
2 changed files with 10 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ export const themeStateSelector = createFeatureSelector<ThemeState>('theme');
export const currentThemeSelector = createSelector( export const currentThemeSelector = createSelector(
themeStateSelector, themeStateSelector,
(state: ThemeState): string => hasValue(state) ? state.currentTheme : undefined (state: ThemeState): string => hasValue(state) ? state.currentTheme : BASE_THEME_NAME,
); );
@Injectable({ @Injectable({
@@ -262,7 +262,7 @@ export class ThemeService {
} }
// inherit the head tags of the default theme // inherit the head tags of the default theme
return this.createHeadTags(defaultThemeConfig.name); return this.createHeadTags(defaultThemeName);
} }
return headTagConfigs.map(this.createHeadTag.bind(this)); return headTagConfigs.map(this.createHeadTag.bind(this));
@@ -425,9 +425,10 @@ export class ThemeService {
* @private * @private
*/ */
private getActionForMatch(newTheme: Theme, currentThemeName: string): SetThemeAction | NoOpAction { private getActionForMatch(newTheme: Theme, currentThemeName: string): SetThemeAction | NoOpAction {
if (hasValue(newTheme) && newTheme.config.name !== currentThemeName) { const newThemeName: string = newTheme?.config.name ?? BASE_THEME_NAME;
if (newThemeName !== currentThemeName) {
// If we have a match, and it isn't already the active theme, set it as the new theme // If we have a match, and it isn't already the active theme, set it as the new theme
return new SetThemeAction(newTheme.config.name); return new SetThemeAction(newThemeName);
} else { } else {
// Otherwise, do nothing // Otherwise, do nothing
return new NoOpAction(); return new NoOpAction();

View File

@@ -5,7 +5,8 @@ import { environment } from '../environments/environment';
import { hasNoValue } from '../app/shared/empty.util'; import { hasNoValue } from '../app/shared/empty.util';
import { AppConfig } from './app-config.interface'; import { AppConfig } from './app-config.interface';
import { ThemeConfig } from './theme.model'; import { ThemeConfig, NamedThemeConfig } from './theme.model';
import { BASE_THEME_NAME } from '../app/shared/theme-support/theme.constants';
/** /**
* Extend Angular environment with app config. * Extend Angular environment with app config.
@@ -44,7 +45,9 @@ const getDefaultThemeConfig = (): ThemeConfig => {
hasNoValue(themeConfig.regex) && hasNoValue(themeConfig.regex) &&
hasNoValue(themeConfig.handle) && hasNoValue(themeConfig.handle) &&
hasNoValue(themeConfig.uuid) hasNoValue(themeConfig.uuid)
); ) ?? {
name: BASE_THEME_NAME,
} as NamedThemeConfig;
}; };
export { export {