Add Projects: third tab, swipe-to-file, per-project note capture

Notes gain an optional project (schema v4, additive). Projects derive
from note values like tags — no separate entity. Tab naming
(Projects/Categories) is a Settings choice applied across the UI.

Claude-Session: https://claude.ai/code/session_014esDWi42URLEC6Cj17hGQ3
This commit is contained in:
2026-07-16 18:24:11 -04:00
parent a8085865bc
commit b2f16e8600
14 changed files with 395 additions and 11 deletions
+11
View File
@@ -7,6 +7,8 @@ struct SettingsView: View {
@Environment(ContextService.self) private var contextService
@EnvironmentObject private var backupController: BackupController
@AppStorage(ProjectsNaming.storageKey) private var namingRaw = ProjectsNaming.projects.rawValue
var body: some View {
NavigationStack {
Form {
@@ -44,6 +46,15 @@ struct SettingsView: View {
}
}
Section("Organization") {
// Renames the Projects tab plus its list headers and swipe/assign UI.
Picker("Group Notes By", selection: $namingRaw) {
ForEach(ProjectsNaming.allCases) { naming in
Text(naming.plural).tag(naming.rawValue)
}
}
}
Section("Context") {
ContextSummaryRow(
context: contextService.current,