fix login

This commit is contained in:
cheykrym 2025-12-03 08:41:57 +03:00
parent 1cec8aee3e
commit 79461616f5
4 changed files with 7 additions and 3 deletions

View File

@ -12,7 +12,8 @@ class LoginViewModel: ObservableObject {
@Published var username: String = "" @Published var username: String = ""
@Published var userId: String = "" @Published var userId: String = ""
@Published var password: String = "" @Published var password: String = ""
@Published var isLoading: Bool = true // сразу true, чтобы показать спиннер при автологине @Published var isLoading: Bool = false
@Published var isInitialLoading: Bool = true // отдельный флаг для сплэша до завершения автологина
@Published var showError: Bool = false @Published var showError: Bool = false
@Published var errorMessage: String = "" @Published var errorMessage: String = ""
@Published var isLoggedIn: Bool = false @Published var isLoggedIn: Bool = false
@ -127,6 +128,7 @@ class LoginViewModel: ObservableObject {
self?.socketService.disconnect() self?.socketService.disconnect()
} }
self?.isLoading = false self?.isLoading = false
self?.isInitialLoading = false
} }
} }
} }

View File

@ -813,6 +813,7 @@ struct LoginView_Previews: PreviewProvider {
private static func preview(step: LoginViewModel.LoginFlowStep) -> some View { private static func preview(step: LoginViewModel.LoginFlowStep) -> some View {
let viewModel = LoginViewModel() let viewModel = LoginViewModel()
viewModel.isLoading = false viewModel.isLoading = false
viewModel.isInitialLoading = false
viewModel.loginFlowStep = step viewModel.loginFlowStep = step
viewModel.passwordlessLogin = "preview@yobble.app" viewModel.passwordlessLogin = "preview@yobble.app"
viewModel.verificationCode = "123456" viewModel.verificationCode = "123456"

View File

@ -233,6 +233,7 @@ 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.isInitialLoading = false
return RegistrationView(viewModel: viewModel, onShowModePrompt: nil) return RegistrationView(viewModel: viewModel, onShowModePrompt: nil)
} }
} }

View File

@ -22,7 +22,7 @@ struct yobbleApp: App {
WindowGroup { WindowGroup {
ZStack(alignment: .top) { ZStack(alignment: .top) {
Group { Group {
if viewModel.isLoading { if viewModel.isInitialLoading {
SplashScreenView() SplashScreenView()
} else if viewModel.isLoggedIn { } else if viewModel.isLoggedIn {
MainView(viewModel: viewModel) MainView(viewModel: viewModel)