Skip to content

Commit 007b788

Browse files
author
Guillaume Chau
committed
feat(vuex): group getters by module
1 parent 7d671b2 commit 007b788

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

packages/app-frontend/src/views/settings/GlobalPreferences.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@
121121
May impact performance or cause crashes
122122
</template>
123123
</VueFormField>
124+
125+
<VueFormField>
126+
<template #title>
127+
Group getters by module
128+
<NewTag :version="2" />
129+
</template>
130+
<VueSwitch v-model="$shared.vuexGroupGettersByModule">
131+
Enable
132+
</VueSwitch>
133+
</VueFormField>
124134
</div>
125135
</template>
126136

packages/app-frontend/src/views/settings/SettingsTab.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import GlobalPreferences from './GlobalPreferences.vue'
99
import { mapState } from 'vuex'
1010
11-
export const SETTINGS_VERSION = 2
11+
export const SETTINGS_VERSION = 3
1212
export const SETTINGS_VERSION_ID = 'vue-devtools-settings-version'
1313
1414
export default {

packages/app-frontend/src/views/vuex/module.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,27 @@ const getters = {
139139
res.getters = data.getters
140140
}
141141

142+
if (SharedData.vuexGroupGettersByModule && res.getters) {
143+
const getterGroups = {}
144+
const keys = Object.keys(res.getters)
145+
keys.forEach(key => {
146+
const parts = key.split('/')
147+
let parent = getterGroups
148+
for (let p = 0; p < parts.length - 1; p++) {
149+
const part = parts[p]
150+
parent = parent[part] = parent[part] || {
151+
_custom: {
152+
value: {},
153+
abstract: true
154+
}
155+
}
156+
parent = parent._custom.value
157+
}
158+
parent[parts.pop()] = res.getters[key]
159+
})
160+
res.getters = getterGroups
161+
}
162+
142163
return res
143164
},
144165

packages/shared-utils/src/shared-data.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ const internalSharedData = {
1515
editableProps: false,
1616
logDetected: true,
1717
vuexNewBackend: false,
18-
vuexAutoload: false
18+
vuexAutoload: false,
19+
vuexGroupGettersByModule: true
1920
}
2021

2122
const persisted = [
@@ -27,6 +28,7 @@ const persisted = [
2728
'logDetected',
2829
'vuexNewBackend',
2930
'vuexAutoload',
31+
'vuexGroupGettersByModule',
3032
'timeFormat'
3133
]
3234

0 commit comments

Comments
 (0)