From 98ea7bcf02ab35a2a856ec6a993ffcc8abd556ac Mon Sep 17 00:00:00 2001 From: cheykrym Date: Thu, 4 Dec 2025 02:41:45 +0300 Subject: [PATCH] login patch --- yobble/ViewModels/LoginViewModel.swift | 1 + yobble/Views/Login/LoginView.swift | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/yobble/ViewModels/LoginViewModel.swift b/yobble/ViewModels/LoginViewModel.swift index 32767c8..43466ab 100644 --- a/yobble/ViewModels/LoginViewModel.swift +++ b/yobble/ViewModels/LoginViewModel.swift @@ -219,6 +219,7 @@ class LoginViewModel: ObservableObject { self.loadStoredUser() self.isLoggedIn = true self.socketService.connectForCurrentUser() + self.verificationCode = "" } else { self.errorMessage = message ?? NSLocalizedString("Проверьте введённый код и попробуйте снова.", comment: "") self.showError = true diff --git a/yobble/Views/Login/LoginView.swift b/yobble/Views/Login/LoginView.swift index 0d429d3..7f35d18 100644 --- a/yobble/Views/Login/LoginView.swift +++ b/yobble/Views/Login/LoginView.swift @@ -681,7 +681,17 @@ private struct OTPInputView: View { get: { code }, set: { newValue in let filtered = newValue.filter { $0.isNumber } - code = String(filtered.prefix(length)) + let trimmed = String(filtered.prefix(length)) + + // избегаем nested updates + if code != trimmed { + // отключаем анимации и делаем обновление вне view update фазы + var transaction = Transaction() + transaction.disablesAnimations = true + withTransaction(transaction) { + code = trimmed + } + } } ) }