Add Assets module with cloud storage and media library flows.

Wire home routing for cloud and material management pages, move shared cloud models into Assets, and add API/view model tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-23 16:10:20 +08:00
parent 3e898d93d0
commit a48eb76ba4
15 changed files with 3431 additions and 75 deletions

View File

@ -29,6 +29,7 @@ struct RootView: View {
@State private var walletAPI: WalletAPI
@State private var scenicPermissionAPI: ScenicPermissionAPI
@State private var taskAPI: TaskAPI
@State private var assetsAPI: AssetsAPI
@State private var authSessionCoordinator: AuthSessionCoordinator
@State private var sessionBootstrapper: SessionBootstrapper
@ -51,6 +52,7 @@ struct RootView: View {
_walletAPI = State(initialValue: WalletAPI(client: apiClient))
_scenicPermissionAPI = State(initialValue: ScenicPermissionAPI(client: apiClient))
_taskAPI = State(initialValue: TaskAPI(client: apiClient))
_assetsAPI = State(initialValue: AssetsAPI(client: apiClient))
_authSessionCoordinator = State(
initialValue: AuthSessionCoordinator(
tokenStore: tokenStore,
@ -90,6 +92,7 @@ struct RootView: View {
.environment(walletAPI)
.environment(scenicPermissionAPI)
.environment(taskAPI)
.environment(assetsAPI)
.environment(authSessionCoordinator)
.task {
apiClient.bindAuthTokenProvider { appSession.token }