diff --git a/src/pages/ProgramSettingsPage.vue b/src/pages/ProgramSettingsPage.vue
index 57ccf80..9626c8f 100644
--- a/src/pages/ProgramSettingsPage.vue
+++ b/src/pages/ProgramSettingsPage.vue
@@ -454,17 +454,33 @@ async function purgeNonOwned() {
}
}
+const collapsedSettingGroups = computed(() =>
+ visibleSettingGroups.value.filter((g) => g.id !== 'customer_features'),
+)
+
+const customerFeaturesGroup = computed(() =>
+ visibleSettingGroups.value.find((g) => g.id === 'customer_features') ?? null,
+)
+
+const customerFeaturesRows = computed(
+ () => groupedFiltered.value.customer_features ?? [],
+)
+
+const hasAnyVisibleSettings = computed(
+ () => visibleSettingGroups.value.length > 0,
+)
+
const defaultOpenGroupId = computed(() => {
- const visibleIds = visibleSettingGroups.value.map((g) => g.id)
- const preferred = ['customer_features', 'chart', 'pricing', 'payping', 'store', 'general']
+ const visibleIds = collapsedSettingGroups.value.map((g) => g.id)
+ const preferred = ['chart', 'pricing', 'payping', 'store', 'general']
return preferred.find((id) => visibleIds.includes(id)) ?? visibleIds[0]
})
watch(
- visibleSettingGroups,
+ collapsedSettingGroups,
(groups) => {
const ids = new Set(groups.map((g) => g.id))
- if (activeKey.value && !ids.has(activeKey.value)) {
+ if (activeKey.value && !ids.has(String(activeKey.value))) {
activeKey.value = groups[0]?.id
}
if (!activeKey.value && groups.length) {
@@ -620,52 +636,19 @@ onMounted(load)
-
-
-
-
-
-
-
-
-
{{ block.title }}
-
-
-
-
-
-
-
-
+
+
+
+
+
{{ customerFeaturesGroup.title }}
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
{{ block.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+