diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 4b45ee6..78d00f9 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -11,18 +11,30 @@ import AddFieldsDialog from './components/dialogs/AddFieldsDialog.vue'
import AppContent from './AppContent.vue'
import GroupDialog from './components/dialogs/GroupDialog.vue'
import DeleteKeyDialog from './components/dialogs/DeleteKeyDialog.vue'
+import { computed, onBeforeMount, ref } from 'vue'
+import { get } from 'lodash'
+import usePreferencesStore from './stores/preferences.js'
+import useConnectionStore from './stores/connections.js'
+import { useI18n } from 'vue-i18n'
+import { darkTheme, lightTheme, useOsTheme } from 'naive-ui'
hljs.registerLanguage('json', json)
hljs.registerLanguage('plaintext', plaintext)
+/**
+ *
+ * @type import('naive-ui').GlobalThemeOverrides
+ */
const themeOverrides = {
common: {
- // primaryColor: '#409EFF',
+ primaryColor: '#D33A31',
+ primaryColorHover: '#FF6B6B',
+ primaryColorPressed: '#D5271C',
+ primaryColorSuppl: '#FF6B6B',
borderRadius: '4px',
borderRadiusSmall: '3px',
- fontFamily: `"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
- "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue"`,
lineHeight: 1.5,
+ scrollbarWidth: '8px',
},
Tag: {
// borderRadius: '3px'
@@ -33,13 +45,52 @@ const themeOverrides = {
tabGapLargeCard: '1px',
},
}
+
+const prefStore = usePreferencesStore()
+const connectionStore = useConnectionStore()
+const i18n = useI18n()
+const initializing = ref(false)
+onBeforeMount(async () => {
+ try {
+ initializing.value = true
+ await prefStore.loadPreferences()
+ i18n.locale.value = get(prefStore.general, 'language', 'en')
+ await prefStore.loadFontList()
+ await connectionStore.initConnections()
+ } finally {
+ initializing.value = false
+ }
+})
+
+const osTheme = useOsTheme()
+const theme = computed(() => {
+ if (prefStore.general.theme === 'auto') {
+ if (osTheme.value === 'dark') {
+ return darkTheme
+ }
+ } else if (prefStore.general.theme === 'dark') {
+ return darkTheme
+ }
+ return lightTheme
+})
-
+
+
-
+
+ {{ $t('launching') }}
+
+
+
@@ -55,4 +106,9 @@ const themeOverrides = {
-
+
diff --git a/frontend/src/AppContent.vue b/frontend/src/AppContent.vue
index 82eb95c..1e704aa 100644
--- a/frontend/src/AppContent.vue
+++ b/frontend/src/AppContent.vue
@@ -1,8 +1,7 @@