mirror of https://github.com/Fabio286/antares.git
79 lines
3.1 KiB
JavaScript
79 lines
3.1 KiB
JavaScript
|
import { defineStore, acceptHMRUpdate } from 'pinia';
|
||
|
import i18n from '@/i18n';
|
||
|
import Store from 'electron-store';
|
||
|
const persistentStore = new Store({ name: 'settings' });
|
||
|
const isDarkTheme = window.matchMedia('(prefers-color-scheme: dark)');
|
||
|
const defaultAppTheme = isDarkTheme.matches ? 'dark' : 'light';
|
||
|
const defaultEditorTheme = isDarkTheme.matches ? 'twilight' : 'sqlserver';
|
||
|
|
||
|
export const useSettingsStore = defineStore('settings', {
|
||
|
state: () => ({
|
||
|
locale: persistentStore.get('locale', 'en-US'),
|
||
|
allowPrerelease: persistentStore.get('allow_prerelease', true),
|
||
|
explorebarSize: persistentStore.get('explorebar_size', null),
|
||
|
notificationsTimeout: persistentStore.get('notifications_timeout', 5),
|
||
|
dataTabLimit: persistentStore.get('data_tab_limit', 1000),
|
||
|
autoComplete: persistentStore.get('auto_complete', true),
|
||
|
lineWrap: persistentStore.get('line_wrap', true),
|
||
|
applicationTheme: persistentStore.get('application_theme', defaultAppTheme),
|
||
|
editorTheme: persistentStore.get('editor_theme', defaultEditorTheme),
|
||
|
editorFontSize: persistentStore.get('editor_font_size', 'medium'),
|
||
|
restoreTabs: persistentStore.get('restore_tabs', true),
|
||
|
disableBlur: persistentStore.get('disable_blur', false)
|
||
|
}),
|
||
|
actions: {
|
||
|
changeLocale (locale) {
|
||
|
this.locale = locale;
|
||
|
i18n.global.locale = locale;
|
||
|
persistentStore.set('locale', this.locale);
|
||
|
},
|
||
|
changePageSize (limit) {
|
||
|
this.dataTabLimit = limit;
|
||
|
persistentStore.set('data_tab_limit', this.dataTabLimit);
|
||
|
},
|
||
|
changeAllowPrerelease (allow) {
|
||
|
this.allowPrerelease = allow;
|
||
|
persistentStore.set('allow_prerelease', this.allowPrerelease);
|
||
|
},
|
||
|
updateNotificationsTimeout (timeout) {
|
||
|
this.notificationsTimeout = timeout;
|
||
|
persistentStore.set('notifications_timeout', this.notificationsTimeout);
|
||
|
},
|
||
|
changeExplorebarSize (size) {
|
||
|
this.explorebarSize = size;
|
||
|
persistentStore.set('explorebar_size', this.explorebarSize);
|
||
|
},
|
||
|
changeAutoComplete (val) {
|
||
|
this.autoComplete = val;
|
||
|
persistentStore.set('auto_complete', this.autoComplete);
|
||
|
},
|
||
|
changeLineWrap (val) {
|
||
|
this.lineWrap = val;
|
||
|
persistentStore.set('line_wrap', this.lineWrap);
|
||
|
},
|
||
|
changeApplicationTheme (theme) {
|
||
|
this.applicationTheme = theme;
|
||
|
persistentStore.set('application_theme', this.applicationTheme);
|
||
|
},
|
||
|
changeEditorTheme (theme) {
|
||
|
this.editorTheme = theme;
|
||
|
persistentStore.set('editor_theme', this.editorTheme);
|
||
|
},
|
||
|
changeEditorFontSize (size) {
|
||
|
this.editorFontSize = size;
|
||
|
persistentStore.set('editor_font_size', this.editorFontSize);
|
||
|
},
|
||
|
changeRestoreTabs (val) {
|
||
|
this.restoreTabs = val;
|
||
|
persistentStore.set('restore_tabs', this.restoreTabs);
|
||
|
},
|
||
|
changeDisableBlur (val) {
|
||
|
this.disableBlur = val;
|
||
|
persistentStore.set('disable_blur', this.disableBlur);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (import.meta.webpackHot)
|
||
|
import.meta.webpackHot.accept(acceptHMRUpdate(useSettingsStore, import.meta.webpackHot));
|