patch terms
This commit is contained in:
		
							parent
							
								
									a28402136d
								
							
						
					
					
						commit
						85fb780c96
					
				@ -18,11 +18,7 @@ class LoginViewModel: ObservableObject {
 | 
				
			|||||||
    @Published var isLoggedIn: Bool = false
 | 
					    @Published var isLoggedIn: Bool = false
 | 
				
			||||||
    @Published var socketState: SocketService.ConnectionState
 | 
					    @Published var socketState: SocketService.ConnectionState
 | 
				
			||||||
    @Published var chatLoadingState: ChatLoadingState = .idle
 | 
					    @Published var chatLoadingState: ChatLoadingState = .idle
 | 
				
			||||||
    @Published var hasAcceptedTerms: Bool {
 | 
					    @Published var hasAcceptedTerms: Bool = false
 | 
				
			||||||
        didSet {
 | 
					 | 
				
			||||||
            UserDefaults.standard.set(hasAcceptedTerms, forKey: DefaultsKeys.termsAccepted)
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    @Published var isLoadingTerms: Bool = false
 | 
					    @Published var isLoadingTerms: Bool = false
 | 
				
			||||||
    @Published var termsContent: String = ""
 | 
					    @Published var termsContent: String = ""
 | 
				
			||||||
    @Published var termsErrorMessage: String?
 | 
					    @Published var termsErrorMessage: String?
 | 
				
			||||||
@ -39,12 +35,10 @@ class LoginViewModel: ObservableObject {
 | 
				
			|||||||
    private enum DefaultsKeys {
 | 
					    private enum DefaultsKeys {
 | 
				
			||||||
        static let currentUser = "currentUser"
 | 
					        static let currentUser = "currentUser"
 | 
				
			||||||
        static let userId = "userId"
 | 
					        static let userId = "userId"
 | 
				
			||||||
        static let termsAccepted = "termsAccepted"
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    init() {
 | 
					    init() {
 | 
				
			||||||
        socketState = socketService.currentConnectionState
 | 
					        socketState = socketService.currentConnectionState
 | 
				
			||||||
        hasAcceptedTerms = UserDefaults.standard.bool(forKey: DefaultsKeys.termsAccepted)
 | 
					 | 
				
			||||||
        observeSocketState()
 | 
					        observeSocketState()
 | 
				
			||||||
        observeChatsReload()
 | 
					        observeChatsReload()
 | 
				
			||||||
//        loadStoredUser()
 | 
					//        loadStoredUser()
 | 
				
			||||||
 | 
				
			|||||||
@ -16,6 +16,7 @@ struct LoginView: View {
 | 
				
			|||||||
    @State private var isShowingRegistration = false
 | 
					    @State private var isShowingRegistration = false
 | 
				
			||||||
    @State private var showLegacySupportNotice = false
 | 
					    @State private var showLegacySupportNotice = false
 | 
				
			||||||
    @State private var isShowingTerms = false
 | 
					    @State private var isShowingTerms = false
 | 
				
			||||||
 | 
					    @State private var hasResetTermsOnAppear = false
 | 
				
			||||||
    @FocusState private var focusedField: Field?
 | 
					    @FocusState private var focusedField: Field?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private enum Field: Hashable {
 | 
					    private enum Field: Hashable {
 | 
				
			||||||
@ -168,6 +169,10 @@ struct LoginView: View {
 | 
				
			|||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            .onAppear {
 | 
					            .onAppear {
 | 
				
			||||||
 | 
					                if !hasResetTermsOnAppear {
 | 
				
			||||||
 | 
					                    viewModel.hasAcceptedTerms = false
 | 
				
			||||||
 | 
					                    hasResetTermsOnAppear = true
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                if shouldShowLegacySupportNotice {
 | 
					                if shouldShowLegacySupportNotice {
 | 
				
			||||||
                    showLegacySupportNotice = true
 | 
					                    showLegacySupportNotice = true
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -304,7 +309,6 @@ struct LoginView_Previews: PreviewProvider {
 | 
				
			|||||||
    static var previews: some View {
 | 
					    static var previews: some View {
 | 
				
			||||||
        let viewModel = LoginViewModel()
 | 
					        let viewModel = LoginViewModel()
 | 
				
			||||||
        viewModel.isLoading = false // чтобы убрать спиннер
 | 
					        viewModel.isLoading = false // чтобы убрать спиннер
 | 
				
			||||||
        viewModel.hasAcceptedTerms = true
 | 
					 | 
				
			||||||
        return LoginView(viewModel: viewModel)
 | 
					        return LoginView(viewModel: viewModel)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -228,6 +228,7 @@ struct RegistrationView: View {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private func dismissSheet() {
 | 
					    private func dismissSheet() {
 | 
				
			||||||
        focusedField = nil
 | 
					        focusedField = nil
 | 
				
			||||||
 | 
					        viewModel.hasAcceptedTerms = false
 | 
				
			||||||
        isPresented = false
 | 
					        isPresented = false
 | 
				
			||||||
        presentationMode.wrappedValue.dismiss()
 | 
					        presentationMode.wrappedValue.dismiss()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -238,7 +239,6 @@ struct RegistrationView_Previews: PreviewProvider {
 | 
				
			|||||||
    static var previews: some View {
 | 
					    static var previews: some View {
 | 
				
			||||||
        let viewModel = LoginViewModel()
 | 
					        let viewModel = LoginViewModel()
 | 
				
			||||||
        viewModel.isLoading = false // чтобы убрать спиннер
 | 
					        viewModel.isLoading = false // чтобы убрать спиннер
 | 
				
			||||||
        viewModel.hasAcceptedTerms = true
 | 
					 | 
				
			||||||
        return RegistrationView(viewModel: viewModel, isPresented: .constant(true))
 | 
					        return RegistrationView(viewModel: viewModel, isPresented: .constant(true))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user