mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-21 09:52:06 +03:00
09fcdc3629
refs https://github.com/TryGhost/Team/issues/1149 - it felt unexpected for state to be remembered when moving around the design/settings screens
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
import Controller from '@ember/controller';
|
|
import {action} from '@ember/object';
|
|
import {inject as service} from '@ember/service';
|
|
import {task} from 'ember-concurrency-decorators';
|
|
import {tracked} from '@glimmer/tracking';
|
|
|
|
export default class SettingsDesignIndexController extends Controller {
|
|
@service config;
|
|
@service customThemeSettings;
|
|
@service notifications;
|
|
@service settings;
|
|
@service themeManagement;
|
|
|
|
@tracked previewSize = 'desktop';
|
|
|
|
get isDesktopPreview() {
|
|
return this.previewSize === 'desktop';
|
|
}
|
|
|
|
get isMobilePreview() {
|
|
return this.previewSize === 'mobile';
|
|
}
|
|
|
|
@action
|
|
setPreviewSize(size) {
|
|
this.previewSize = size;
|
|
}
|
|
|
|
@action
|
|
saveFromKeyboard() {
|
|
document.activeElement.blur?.();
|
|
return this.saveTask.perform();
|
|
}
|
|
|
|
@task
|
|
*saveTask() {
|
|
try {
|
|
if (this.settings.get('errors').length !== 0) {
|
|
return;
|
|
}
|
|
|
|
yield Promise.all([
|
|
this.settings.save(),
|
|
this.customThemeSettings.save()
|
|
]);
|
|
|
|
// ensure task button switches to success state
|
|
return true;
|
|
} catch (error) {
|
|
if (error) {
|
|
this.notifications.showAPIError(error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
|
|
reset() {
|
|
this.previewSize = 'desktop';
|
|
this.themeManagement.setPreviewType('homepage');
|
|
}
|
|
}
|