The boards stack becomes the root screen: Settings moves from its own tab to a sheet behind a leading gearshape button, the sort pickers trade their text segments for symbols (hand.draw, textformat.abc, clock) with the words kept for accessibility, and every list now opens sorted by most recent change. UI tests re-aimed at the gear button and Done-button scoping fixed for the sheet-over-sheet nav bars — 4/4 green in the simulator. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
21 lines
742 B
Swift
21 lines
742 B
Swift
import SwiftUI
|
|
|
|
/// The iPhone app's entry point. The boards navigation stack (board → lane → card) is the whole
|
|
/// app; Settings lives behind the gear button on the board list rather than a tab of its own.
|
|
@main
|
|
struct MobileApp: App {
|
|
|
|
/// **The app's root model, owned here and nowhere else** — the container home, the one
|
|
/// `NSMetadataQuery` the process runs, and the per-board session cache. `@State` because the
|
|
/// scene owns its lifetime; every screen reaches it through `.environment`, never by
|
|
/// constructing one.
|
|
@State private var boardIndex = BoardIndexStore()
|
|
|
|
var body: some Scene {
|
|
WindowGroup {
|
|
BoardsTabView()
|
|
.environment(boardIndex)
|
|
}
|
|
}
|
|
}
|