Epic: Welcome Screen (#139)
Task ID: T-3 · Wave: 2 · Complexity: M
Описание
Интегрировать WelcomeFeature в AppFeature routing и переписать WelcomeView на TCA.
AppFeature.State.Route.welcome → .welcome(WelcomeFeature.State)
routeWelcome computed property (аналогично routeMain)
- Scope через
.ifLet(\.routeWelcome, action: \.welcome)
- Delegate:
.welcome(.delegate(.projectSelected(url))) → .openProject(url)
- Переписать WelcomeView: убрать @query, @Environment(.modelContext), ProjectRepository. Принимать
StoreOf<WelcomeFeature>.
RecentProjectRow принимает ProjectInfo вместо ProjectModel
- Default init:
.welcome(WelcomeFeature.State())
Module: MacApp/Relay/AppFeature.swift, MacApp/Relay/AppRootView.swift, MacApp/Relay/Welcome/
Acceptance Criteria
Dependencies
Epic: Welcome Screen (#139)
Task ID: T-3 · Wave: 2 · Complexity: M
Описание
Интегрировать WelcomeFeature в AppFeature routing и переписать WelcomeView на TCA.
AppFeature.State.Route.welcome→.welcome(WelcomeFeature.State)routeWelcomecomputed property (аналогичноrouteMain).ifLet(\.routeWelcome, action: \.welcome).welcome(.delegate(.projectSelected(url)))→.openProject(url)StoreOf<WelcomeFeature>.RecentProjectRowпринимаетProjectInfoвместоProjectModel.welcome(WelcomeFeature.State())Module:
MacApp/Relay/AppFeature.swift,MacApp/Relay/AppRootView.swift,MacApp/Relay/Welcome/Acceptance Criteria
AppFeature.Route.welcome(WelcomeFeature.State)компилируетсяStoreOf<WelcomeFeature>, не содержит @query / @Environment(.modelContext) / ProjectRepositoryRecentProjectRowпринимаетProjectInfoDependencies