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