Ghost/ghost/admin/app/routes/settings/design/no-theme.js
Arjuna Kristophe Sankar 096dffb817
🐛 Fixed missing active theme breaks design screen (#15602)
closes: https://github.com/TryGhost/Ghost/issues/15505

When starting Ghost with a missing active theme, the design settings screen and change theme screen both end up in a broken state with the user unable to select a new theme as the active one.

The design screen has no default (or blank) slate, and so shows a preview of an empty theme.
- First added a new default screen to serve as a placeholder for when the state contains no active theme.
- Added a check for when there was no active theme, then redirects the user to the default screen .

The change theme screen wants to set an active property on the theme that should be active in the theme list.
- Added a check to see whether there is an active theme set.
- If there isn't one, don't bother trying to add the active property.
2022-10-30 14:14:11 +00:00

17 lines
511 B
JavaScript

import AuthenticatedRoute from 'ghost-admin/routes/authenticated';
import {inject as service} from '@ember/service';
export default class SettingsDesignNoThemeRoute extends AuthenticatedRoute {
@service store;
themes = this.store.peekAll('theme');
afterModel() {
super.afterModel(...arguments);
let activeTheme = this.themes.findBy('active', true);
if (typeof activeTheme !== 'undefined') {
return this.transitionTo('settings.design.index');
}
}
}