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
39 lines
1.2 KiB
Swift
39 lines
1.2 KiB
Swift
import SwiftUI
|
|
|
|
struct ContentView: View {
|
|
@Environment(SyncEngine.self) private var syncEngine
|
|
|
|
@AppStorage(ProjectsNaming.storageKey) private var namingRaw = ProjectsNaming.projects.rawValue
|
|
private var naming: ProjectsNaming { ProjectsNaming(rawValue: namingRaw) ?? .projects }
|
|
|
|
var body: some View {
|
|
if syncEngine.iCloudStatus == .unavailable {
|
|
ICloudGateView()
|
|
} else {
|
|
TabView {
|
|
Tab("Notes", systemImage: "square.and.pencil") {
|
|
NotesListView()
|
|
}
|
|
|
|
Tab("Tags", systemImage: "tag") {
|
|
TagsView()
|
|
}
|
|
|
|
Tab(naming.plural, systemImage: "folder") {
|
|
ProjectsView()
|
|
}
|
|
|
|
Tab("Settings", systemImage: "gearshape") {
|
|
SettingsView()
|
|
}
|
|
|
|
// role: .search renders as the separated magnifier tab at the
|
|
// trailing edge of the tab bar on iOS 26.
|
|
Tab("Search", systemImage: "magnifyingglass", role: .search) {
|
|
SearchView()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|