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) - - - - - - +