Skip to content
Snippets Groups Projects
Select Git revision
  • a6e5b5524a5788ce1df88520532a831466160624
  • release default protected
  • 11-22-implement-kv-interface-defined-in-collectiveversionedkvgo
  • hotfix/TestHostPool_UpdateNdf_AddFilter
  • XX-4719/announcementChannels
  • xx-4717/logLevel
  • jonah/noob-channel
  • master protected
  • XX-4707/tagDiskJson
  • xx-4698/notification-retry
  • hotfix/notifylockup
  • syncNodes
  • hotfix/localCB
  • XX-4677/NewChanManagerMobile
  • XX-4689/DmSync
  • duplicatePrefix
  • XX-4601/HavenInvites
  • finalizedUICallbacks
  • XX-4673/AdminKeySync
  • debugNotifID
  • anne/test
  • v4.7.5
  • v4.7.4
  • v4.7.3
  • v4.7.2
  • v4.7.1
  • v4.6.3
  • v4.6.1
  • v4.5.0
  • v4.4.4
  • v4.3.11
  • v4.3.8
  • v4.3.7
  • v4.3.6
  • v4.3.5
  • v4.2.0
  • v4.3.0
  • v4.3.4
  • v4.3.3
  • v4.3.2
  • v4.3.1
41 results

jsonStorage.go

Blame
  • AppView.swift 3.58 KiB
    import ComposableArchitecture
    import HomeFeature
    import RestoreFeature
    import SwiftUI
    import WelcomeFeature
    
    struct AppView: View {
      let store: Store<AppState, AppAction>
    
      enum ViewState: Equatable {
        case loading
        case welcome
        case restore
        case home
        case failure(String)
    
        init(_ state: AppState) {
          switch state.screen {
          case .loading: self = .loading
          case .welcome(_): self = .welcome
          case .restore(_): self = .restore
          case .home(_): self = .home
          case .failure(let failure): self = .failure(failure)
          }
        }
      }
    
      var body: some View {
        WithViewStore(store.scope(state: ViewState.init)) { viewStore in
          ZStack {
            switch viewStore.state {
            case .loading:
              ProgressView {
                Text("Loading")
              }
              .controlSize(.large)
              .frame(maxWidth: .infinity, maxHeight: .infinity)
              .transition(.opacity)
    
            case .welcome:
              IfLetStore(
                store.scope(
                  state: { (/AppState.Screen.welcome).extract(from: $0.screen) },
                  action: AppAction.welcome
                ),
                then: { store in
                  WelcomeView(store: store)
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .transition(.asymmetric(
                      insertion: .move(edge: .trailing),
                      removal: .opacity
                    ))
                }
              )
    
            case .restore:
              IfLetStore(
                store.scope(
                  state: { (/AppState.Screen.restore).extract(from: $0.screen) },
                  action: AppAction.restore
                ),
                then: { store in
                  RestoreView(store: store)
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .transition(.asymmetric(
                      insertion: .move(edge: .trailing),
                      removal: .opacity
                    ))
                }
              )