diff --git a/Outpost/Features/Account/SettingsSidebarList.swift b/Outpost/Features/Account/SettingsSidebarList.swift index 9f86f5d..0330ad9 100644 --- a/Outpost/Features/Account/SettingsSidebarList.swift +++ b/Outpost/Features/Account/SettingsSidebarList.swift @@ -42,7 +42,15 @@ struct SettingsSidebarList: View { Divider() List(selection: $selection) { - ForEach(SettingsCategory.allCases) { category in + // TODO: Workspace is entirely `!isImplemented` placeholders + // right now (details/authentication/security/ai/members/ + // groups/templates/emojis/applications/shared/links/ + // webhooks/importData/exportData) — App Store review won't + // accept a section that's just "Coming Soon" rows, so it's + // filtered out of the sidebar below (via `visibleCategories`) + // until real content lands. Remove the filter once at least + // one Workspace section is built. + ForEach(visibleCategories) { category in let sections = SettingsSection.allCases.filter { $0.category == category } Section { ForEach(sections) { section in @@ -91,6 +99,14 @@ struct SettingsSidebarList: View { .task(id: isEffectivelyOnline) { await refreshOutlineVersion() } } + /// Categories with at least one built (`isImplemented`) section — see the + /// TODO above the `ForEach` that uses this. + private var visibleCategories: [SettingsCategory] { + SettingsCategory.allCases.filter { category in + SettingsSection.allCases.contains { $0.category == category && $0.isImplemented } + } + } + private var versionFooter: some View { VStack(alignment: .leading, spacing: 2) { Text("Outpost \(OutpostVersion.displayString)") diff --git a/Outpost/Features/Account/SettingsView.swift b/Outpost/Features/Account/SettingsView.swift index d5181cb..f57daf3 100644 --- a/Outpost/Features/Account/SettingsView.swift +++ b/Outpost/Features/Account/SettingsView.swift @@ -1325,9 +1325,10 @@ struct SettingsView: View { } .frame(maxWidth: 480, alignment: .leading) - Divider() - .frame(maxWidth: 480) - + // TODO: Export All Data / Developer Diagnostics / Reset Local + // Database aren't built yet — App Store review won't accept + // "Coming Soon" rows, so commented out until real content lands. + /* VStack(alignment: .leading, spacing: 12) { comingSoonRow("Export All Data") comingSoonRow("Developer Diagnostics") @@ -1335,6 +1336,10 @@ struct SettingsView: View { } .frame(maxWidth: 480, alignment: .leading) + Divider() + .frame(maxWidth: 480) + */ + Divider() .frame(maxWidth: 480) @@ -1400,6 +1405,9 @@ struct SettingsView: View { ) } + /// Only referenced from the commented-out block above right now — kept + /// (not deleted) so re-enabling those rows is a one-line uncomment once + /// they're actually built. private func comingSoonRow(_ title: String) -> some View { HStack { Text(title)