Skip to content

Commit 95e48e7

Browse files
committed
perf: bind message and dialog to window
1 parent 22f71e4 commit 95e48e7

24 files changed

+182
-210
lines changed

frontend/package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/App.vue

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import AddFieldsDialog from './components/dialogs/AddFieldsDialog.vue'
1111
import AppContent from './AppContent.vue'
1212
import GroupDialog from './components/dialogs/GroupDialog.vue'
1313
import DeleteKeyDialog from './components/dialogs/DeleteKeyDialog.vue'
14-
import { computed, onBeforeMount, ref } from 'vue'
14+
import { onMounted, ref, watch } from 'vue'
1515
import usePreferencesStore from './stores/preferences.js'
1616
import useConnectionStore from './stores/connections.js'
1717
import { useI18n } from 'vue-i18n'
18-
import { darkTheme, lightTheme, useOsTheme } from 'naive-ui'
18+
import { darkTheme } from 'naive-ui'
1919
import KeyFilterDialog from './components/dialogs/KeyFilterDialog.vue'
2020
import { WindowSetDarkTheme, WindowSetLightTheme } from 'wailsjs/runtime/runtime.js'
2121
import { themeOverrides } from '@/utils/theme.js'
@@ -27,12 +27,10 @@ const prefStore = usePreferencesStore()
2727
const connectionStore = useConnectionStore()
2828
const i18n = useI18n()
2929
const initializing = ref(false)
30-
onBeforeMount(async () => {
30+
onMounted(async () => {
3131
try {
3232
initializing.value = true
33-
await prefStore.loadPreferences()
3433
i18n.locale.value = prefStore.currentLanguage
35-
await prefStore.loadFontList()
3634
await connectionStore.initConnections()
3735
if (prefStore.autoCheckUpdate) {
3836
prefStore.checkForUpdate()
@@ -42,27 +40,17 @@ onBeforeMount(async () => {
4240
}
4341
})
4442
45-
const osTheme = useOsTheme()
46-
const theme = computed(() => {
47-
if (prefStore.general.theme === 'auto') {
48-
if (osTheme.value === 'dark') {
49-
WindowSetDarkTheme()
50-
return darkTheme
51-
}
52-
} else if (prefStore.general.theme === 'dark') {
53-
WindowSetDarkTheme()
54-
return darkTheme
55-
}
56-
WindowSetLightTheme()
57-
return lightTheme
58-
})
43+
watch(
44+
() => prefStore.isDark,
45+
(isDark) => (isDark ? WindowSetDarkTheme() : WindowSetLightTheme()),
46+
)
5947
</script>
6048

6149
<template>
6250
<n-config-provider
6351
:hljs="hljs"
6452
:inline-theme-disabled="true"
65-
:theme="theme"
53+
:theme="prefStore.isDark ? darkTheme : undefined"
6654
:theme-overrides="themeOverrides"
6755
class="fill-height"
6856
>

frontend/src/components/content/ContentPane.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import useTabStore from 'stores/tab.js'
1111
import { useDialog } from 'naive-ui'
1212
import useConnectionStore from 'stores/connections.js'
1313
import { useI18n } from 'vue-i18n'
14-
import { useConfirmDialog } from '@/utils/confirm_dialog.js'
1514
import ContentServerStatus from '@/components/content_value/ContentServerStatus.vue'
1615
import ContentValueStream from '@/components/content_value/ContentValueStream.vue'
1716
@@ -125,9 +124,8 @@ const onReloadKey = async () => {
125124
}
126125
127126
const i18n = useI18n()
128-
const confirmDialog = useConfirmDialog()
129127
const onCloseTab = (tabIndex) => {
130-
confirmDialog.warning(i18n.t('close_confirm'), () => {
128+
$dialog.warning(i18n.t('close_confirm'), () => {
131129
const tab = get(tabStore.tabs, tabIndex)
132130
if (tab != null) {
133131
connectionStore.closeConnection(tab.name)

frontend/src/components/content_value/ContentToolbar.vue

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ import RedisTypeTag from '@/components/common/RedisTypeTag.vue'
99
import { useI18n } from 'vue-i18n'
1010
import IconButton from '@/components/common/IconButton.vue'
1111
import useConnectionStore from 'stores/connections.js'
12-
import { useConfirmDialog } from '@/utils/confirm_dialog.js'
1312
import Copy from '@/components/icons/Copy.vue'
1413
import { ClipboardSetText } from 'wailsjs/runtime/runtime.js'
15-
import { useMessage } from '@/utils/message.js'
1614
1715
const props = defineProps({
1816
server: String,
@@ -33,7 +31,6 @@ const props = defineProps({
3331
3432
const dialogStore = useDialog()
3533
const connectionStore = useConnectionStore()
36-
const message = useMessage()
3734
const i18n = useI18n()
3835
3936
const onReloadKey = () => {
@@ -44,20 +41,19 @@ const onCopyKey = () => {
4441
ClipboardSetText(props.keyPath)
4542
.then((succ) => {
4643
if (succ) {
47-
message.success(i18n.t('copy_succ'))
44+
$message.success(i18n.t('copy_succ'))
4845
}
4946
})
5047
.catch((e) => {
51-
message.error(e.message)
48+
$message.error(e.message)
5249
})
5350
}
5451
55-
const confirmDialog = useConfirmDialog()
5652
const onDeleteKey = () => {
57-
confirmDialog.warning(i18n.t('remove_tip', { name: props.keyPath }), () => {
53+
$dialog.warning(i18n.t('remove_tip', { name: props.keyPath }), () => {
5854
connectionStore.deleteKey(props.server, props.db, props.keyPath).then((success) => {
5955
if (success) {
60-
message.success(i18n.t('delete_key_succ', { key: props.keyPath }))
56+
$message.success(i18n.t('delete_key_succ', { key: props.keyPath }))
6157
}
6258
})
6359
})

frontend/src/components/content_value/ContentValueHash.vue

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ import { types, types as redisTypes } from '@/consts/support_redis_type.js'
88
import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
99
import useDialogStore from 'stores/dialog.js'
1010
import useConnectionStore from 'stores/connections.js'
11-
import { useMessage } from '@/utils/message.js'
1211
1312
const i18n = useI18n()
14-
const message = useMessage()
1513
const props = defineProps({
1614
name: String,
1715
db: Number,
@@ -125,18 +123,18 @@ const actionColumn = {
125123
)
126124
if (success) {
127125
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
128-
message.success(i18n.t('delete_key_succ', { key: row.key }))
126+
$message.success(i18n.t('delete_key_succ', { key: row.key }))
129127
// update display value
130128
// if (!isEmpty(removed)) {
131129
// for (const elem of removed) {
132130
// delete props.value[elem]
133131
// }
134132
// }
135133
} else {
136-
message.error(msg)
134+
$message.error(msg)
137135
}
138136
} catch (e) {
139-
message.error(e.message)
137+
$message.error(e.message)
140138
}
141139
},
142140
onSave: async () => {
@@ -151,18 +149,18 @@ const actionColumn = {
151149
)
152150
if (success) {
153151
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
154-
message.success(i18n.t('save_value_succ'))
152+
$message.success(i18n.t('save_value_succ'))
155153
// update display value
156154
// if (!isEmpty(updated)) {
157155
// for (const key in updated) {
158156
// props.value[key] = updated[key]
159157
// }
160158
// }
161159
} else {
162-
message.error(msg)
160+
$message.error(msg)
163161
}
164162
} catch (e) {
165-
message.error(e.message)
163+
$message.error(e.message)
166164
} finally {
167165
currentEditRow.value.no = 0
168166
}

frontend/src/components/content_value/ContentValueList.vue

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ import { types, types as redisTypes } from '@/consts/support_redis_type.js'
99
import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
1010
import useDialogStore from 'stores/dialog.js'
1111
import useConnectionStore from 'stores/connections.js'
12-
import { useMessage } from '@/utils/message.js'
1312
1413
const i18n = useI18n()
15-
const message = useMessage()
1614
const props = defineProps({
1715
name: String,
1816
db: Number,
@@ -82,16 +80,16 @@ const actionColumn = {
8280
)
8381
if (success) {
8482
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
85-
message.success(i18n.t('delete_key_succ', { key: '#' + row.no }))
83+
$message.success(i18n.t('delete_key_succ', { key: '#' + row.no }))
8684
// update display value
8785
// if (!isEmpty(removed)) {
8886
// props.value.splice(removed[0], 1)
8987
// }
9088
} else {
91-
message.error(msg)
89+
$message.error(msg)
9290
}
9391
} catch (e) {
94-
message.error(e.message)
92+
$message.error(e.message)
9593
}
9694
},
9795
onSave: async () => {
@@ -105,18 +103,18 @@ const actionColumn = {
105103
)
106104
if (success) {
107105
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
108-
message.success(i18n.t('save_value_succ'))
106+
$message.success(i18n.t('save_value_succ'))
109107
// update display value
110108
// if (!isEmpty(updated)) {
111109
// for (const key in updated) {
112110
// props.value[key] = updated[key]
113111
// }
114112
// }
115113
} else {
116-
message.error(msg)
114+
$message.error(msg)
117115
}
118116
} catch (e) {
119-
message.error(e.message)
117+
$message.error(e.message)
120118
} finally {
121119
currentEditRow.value.no = 0
122120
}

frontend/src/components/content_value/ContentValueSet.vue

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ import useDialogStore from 'stores/dialog.js'
99
import { types, types as redisTypes } from '@/consts/support_redis_type.js'
1010
import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
1111
import useConnectionStore from 'stores/connections.js'
12-
import { useMessage } from '@/utils/message.js'
1312
1413
const i18n = useI18n()
15-
const message = useMessage()
1614
const props = defineProps({
1715
name: String,
1816
db: Number,
@@ -84,14 +82,14 @@ const actionColumn = {
8482
)
8583
if (success) {
8684
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
87-
message.success(i18n.t('delete_key_succ', { key: row.value }))
85+
$message.success(i18n.t('delete_key_succ', { key: row.value }))
8886
// update display value
8987
// props.value.splice(row.no - 1, 1)
9088
} else {
91-
message.error(msg)
89+
$message.error(msg)
9290
}
9391
} catch (e) {
94-
message.error(e.message)
92+
$message.error(e.message)
9593
}
9694
},
9795
onSave: async () => {
@@ -105,14 +103,14 @@ const actionColumn = {
105103
)
106104
if (success) {
107105
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
108-
message.success(i18n.t('save_value_succ'))
106+
$message.success(i18n.t('save_value_succ'))
109107
// update display value
110108
// props.value[row.no - 1] = currentEditRow.value.value
111109
} else {
112-
message.error(msg)
110+
$message.error(msg)
113111
}
114112
} catch (e) {
115-
message.error(e.message)
113+
$message.error(e.message)
116114
} finally {
117115
currentEditRow.value.no = 0
118116
}

frontend/src/components/content_value/ContentValueStream.vue

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ import EditableTableColumn from '@/components/common/EditableTableColumn.vue'
99
import useDialogStore from 'stores/dialog.js'
1010
import useConnectionStore from 'stores/connections.js'
1111
import { includes, keys, some, values } from 'lodash'
12-
import { useMessage } from '@/utils/message.js'
1312
1413
const i18n = useI18n()
15-
const message = useMessage()
1614
const props = defineProps({
1715
name: String,
1816
db: Number,
@@ -92,18 +90,18 @@ const actionColumn = {
9290
)
9391
if (success) {
9492
connectionStore.loadKeyValue(props.name, props.db, props.keyPath).then((r) => {})
95-
message.success(i18n.t('delete_key_succ', { key: row.id }))
93+
$message.success(i18n.t('delete_key_succ', { key: row.id }))
9694
// update display value
9795
// if (!isEmpty(removed)) {
9896
// for (const elem of removed) {
9997
// delete props.value[elem]
10098
// }
10199
// }
102100
} else {
103-
message.error(msg)
101+
$message.error(msg)
104102
}
105103
} catch (e) {
106-
message.error(e.message)
104+
$message.error(e.message)
107105
}
108106
},
109107
})

frontend/src/components/content_value/ContentValueString.vue

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@ import { types as redisTypes } from '@/consts/support_redis_type.js'
1313
import { ClipboardSetText } from 'wailsjs/runtime/runtime.js'
1414
import { toLower } from 'lodash'
1515
import useConnectionStore from 'stores/connections.js'
16-
import { useMessage } from '@/utils/message.js'
1716
1817
const i18n = useI18n()
19-
const message = useMessage()
2018
const themeVars = useThemeVars()
2119
2220
const props = defineProps({
@@ -117,11 +115,11 @@ const onCopyValue = () => {
117115
ClipboardSetText(viewValue.value)
118116
.then((succ) => {
119117
if (succ) {
120-
message.success(i18n.t('copy_succ'))
118+
$message.success(i18n.t('copy_succ'))
121119
}
122120
})
123121
.catch((e) => {
124-
message.error(e.message)
122+
$message.error(e.message)
125123
})
126124
}
127125
@@ -154,12 +152,12 @@ const onSaveValue = async () => {
154152
)
155153
if (success) {
156154
await connectionStore.loadKeyValue(props.name, props.db, props.keyPath)
157-
message.success(i18n.t('save_value_succ'))
155+
$message.success(i18n.t('save_value_succ'))
158156
} else {
159-
message.error(msg)
157+
$message.error(msg)
160158
}
161159
} catch (e) {
162-
message.error(e.message)
160+
$message.error(e.message)
163161
} finally {
164162
inEdit.value = false
165163
saving.value = false

0 commit comments

Comments
 (0)