add afterregister sheet

This commit is contained in:
cheykrym 2025-10-24 21:05:11 +03:00
parent b466864350
commit b46fc3ae16
4 changed files with 36 additions and 20 deletions

View File

@ -66,6 +66,9 @@
},
"2FA отключена" : {
"comment" : "Заголовок уведомления об отключении 2FA"
},
"After Register View" : {
},
"Companion ID" : {
"comment" : "Search placeholder companion title"

View File

@ -34,7 +34,7 @@ class LoginViewModel: ObservableObject {
}
enum OnboardingDestination: Equatable {
case securitySettings
case afterRegister
}
private enum DefaultsKeys {
@ -132,7 +132,7 @@ class LoginViewModel: ObservableObject {
self?.isLoggedIn = true // 👈 переключаем на главный экран после автологина
self?.loadStoredUser()
self?.socketService.connectForCurrentUser()
self?.onboardingDestination = .securitySettings
self?.onboardingDestination = .afterRegister
} else {
self?.socketService.disconnect()
}

View File

@ -0,0 +1,20 @@
//
// AfterRegisterView.swift
// yobble
//
// Created by cheykrym on 24.10.2025.
//
import SwiftUI
struct AfterRegisterView: View {
var body: some View {
Text("After Register View")
}
}
struct AfterRegisterView_Previews: PreviewProvider {
static var previews: some View {
AfterRegisterView()
}
}

View File

@ -22,6 +22,7 @@ struct MainView: View {
@State private var deepLinkChatItem: PrivateChatListItem?
@State private var isDeepLinkChatActive = false
@State private var hasTriggeredSecuritySettingsOnboarding = false
@State private var isAfterRegisterPresented = false
private var tabTitle: String {
switch selectedTab {
@ -174,13 +175,16 @@ struct MainView: View {
.onAppear {
enforceTabSelectionForMessengerMode()
handleTwoFactorOnboardingIfNeeded()
handleAfterRegisterOnboardingIfNeeded()
}
.onChange(of: isMessengerModeEnabled) { _ in
enforceTabSelectionForMessengerMode()
handleTwoFactorOnboardingIfNeeded()
handleAfterRegisterOnboardingIfNeeded()
}
.onChange(of: viewModel.onboardingDestination) { _ in
handleTwoFactorOnboardingIfNeeded()
handleAfterRegisterOnboardingIfNeeded()
}
.onChange(of: messageCenter.pendingNavigation?.id) { _ in
guard !AppConfig.PRESENT_CHAT_AS_SHEET,
@ -209,6 +213,9 @@ struct MainView: View {
isSettingsPresented = false
}
}
.sheet(isPresented: $isAfterRegisterPresented) {
AfterRegisterView()
}
}
}
@ -223,27 +230,13 @@ private extension MainView {
}
}
func handleTwoFactorOnboardingIfNeeded() {
guard viewModel.onboardingDestination == .securitySettings else {
hasTriggeredSecuritySettingsOnboarding = false
func handleAfterRegisterOnboardingIfNeeded() {
guard viewModel.onboardingDestination == .afterRegister else {
return
}
guard !hasTriggeredSecuritySettingsOnboarding else { return }
hasTriggeredSecuritySettingsOnboarding = true
if isMessengerModeEnabled {
if selectedTab != 5 {
selectedTab = 5
}
} else {
if selectedTab != 3 {
selectedTab = 3
}
DispatchQueue.main.async {
isSettingsPresented = true
}
}
isAfterRegisterPresented = true
}
var deepLinkNavigationLink: some View {