68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
/* global $, Whisper */
|
|
|
|
$(document).on('keydown', e => {
|
|
'use strict';
|
|
|
|
if (e.keyCode === 27) {
|
|
window.closeSettings();
|
|
}
|
|
});
|
|
|
|
const $body = $(document.body);
|
|
|
|
async function applyTheme() {
|
|
'use strict';
|
|
|
|
const theme = await window.getThemeSetting();
|
|
$body.removeClass('light-theme');
|
|
$body.removeClass('dark-theme');
|
|
$body.addClass(`${theme === 'system' ? window.systemTheme : theme}-theme`);
|
|
}
|
|
|
|
applyTheme();
|
|
|
|
window.subscribeToSystemThemeChange(() => {
|
|
'use strict';
|
|
|
|
applyTheme();
|
|
});
|
|
|
|
// eslint-disable-next-line strict
|
|
const getInitialData = async () => ({
|
|
deviceName: await window.getDeviceName(),
|
|
|
|
themeSetting: await window.getThemeSetting(),
|
|
hideMenuBar: await window.getHideMenuBar(),
|
|
|
|
notificationSetting: await window.getNotificationSetting(),
|
|
audioNotification: await window.getAudioNotification(),
|
|
|
|
spellCheck: await window.getSpellCheck(),
|
|
|
|
mediaPermissions: await window.getMediaPermissions(),
|
|
|
|
isPrimary: await window.isPrimary(),
|
|
lastSyncTime: await window.getLastSyncTime(),
|
|
});
|
|
|
|
window.initialRequest = getInitialData();
|
|
|
|
// eslint-disable-next-line more/no-then
|
|
window.initialRequest.then(
|
|
data => {
|
|
'use strict';
|
|
|
|
window.initialData = data;
|
|
window.view = new Whisper.SettingsView();
|
|
window.view.$el.appendTo($body);
|
|
},
|
|
error => {
|
|
'use strict';
|
|
|
|
window.log.error(
|
|
'settings.initialRequest error:',
|
|
error && error.stack ? error.stack : error
|
|
);
|
|
window.closeSettings();
|
|
}
|
|
);
|