From 85fb780c96603c998aa07a342f27184984c6b714 Mon Sep 17 00:00:00 2001 From: cheykrym Date: Thu, 23 Oct 2025 19:20:04 +0300 Subject: [PATCH] patch terms --- yobble/ViewModels/LoginViewModel.swift | 8 +------- yobble/Views/Login/LoginView.swift | 6 +++++- yobble/Views/Login/RegistrationView.swift | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/yobble/ViewModels/LoginViewModel.swift b/yobble/ViewModels/LoginViewModel.swift index 439f1d2..4df145f 100644 --- a/yobble/ViewModels/LoginViewModel.swift +++ b/yobble/ViewModels/LoginViewModel.swift @@ -18,11 +18,7 @@ class LoginViewModel: ObservableObject { @Published var isLoggedIn: Bool = false @Published var socketState: SocketService.ConnectionState @Published var chatLoadingState: ChatLoadingState = .idle - @Published var hasAcceptedTerms: Bool { - didSet { - UserDefaults.standard.set(hasAcceptedTerms, forKey: DefaultsKeys.termsAccepted) - } - } + @Published var hasAcceptedTerms: Bool = false @Published var isLoadingTerms: Bool = false @Published var termsContent: String = "" @Published var termsErrorMessage: String? @@ -39,12 +35,10 @@ class LoginViewModel: ObservableObject { private enum DefaultsKeys { static let currentUser = "currentUser" static let userId = "userId" - static let termsAccepted = "termsAccepted" } init() { socketState = socketService.currentConnectionState - hasAcceptedTerms = UserDefaults.standard.bool(forKey: DefaultsKeys.termsAccepted) observeSocketState() observeChatsReload() // loadStoredUser() diff --git a/yobble/Views/Login/LoginView.swift b/yobble/Views/Login/LoginView.swift index 6f8c9fa..756f8e5 100644 --- a/yobble/Views/Login/LoginView.swift +++ b/yobble/Views/Login/LoginView.swift @@ -16,6 +16,7 @@ struct LoginView: View { @State private var isShowingRegistration = false @State private var showLegacySupportNotice = false @State private var isShowingTerms = false + @State private var hasResetTermsOnAppear = false @FocusState private var focusedField: Field? private enum Field: Hashable { @@ -168,6 +169,10 @@ struct LoginView: View { ) } .onAppear { + if !hasResetTermsOnAppear { + viewModel.hasAcceptedTerms = false + hasResetTermsOnAppear = true + } if shouldShowLegacySupportNotice { showLegacySupportNotice = true } @@ -304,7 +309,6 @@ struct LoginView_Previews: PreviewProvider { static var previews: some View { let viewModel = LoginViewModel() viewModel.isLoading = false // чтобы убрать спиннер - viewModel.hasAcceptedTerms = true return LoginView(viewModel: viewModel) } } diff --git a/yobble/Views/Login/RegistrationView.swift b/yobble/Views/Login/RegistrationView.swift index 94e0e4f..58bbdf8 100644 --- a/yobble/Views/Login/RegistrationView.swift +++ b/yobble/Views/Login/RegistrationView.swift @@ -228,6 +228,7 @@ struct RegistrationView: View { private func dismissSheet() { focusedField = nil + viewModel.hasAcceptedTerms = false isPresented = false presentationMode.wrappedValue.dismiss() } @@ -238,7 +239,6 @@ struct RegistrationView_Previews: PreviewProvider { static var previews: some View { let viewModel = LoginViewModel() viewModel.isLoading = false // чтобы убрать спиннер - viewModel.hasAcceptedTerms = true return RegistrationView(viewModel: viewModel, isPresented: .constant(true)) } }