patch terms

This commit is contained in:
cheykrym 2025-10-23 19:20:04 +03:00
parent a28402136d
commit 85fb780c96
3 changed files with 7 additions and 9 deletions

View File

@ -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()

View File

@ -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)
}
}

View File

@ -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))
}
}