add afterregister sheet
This commit is contained in:
parent
b466864350
commit
b46fc3ae16
@ -66,6 +66,9 @@
|
|||||||
},
|
},
|
||||||
"2FA отключена" : {
|
"2FA отключена" : {
|
||||||
"comment" : "Заголовок уведомления об отключении 2FA"
|
"comment" : "Заголовок уведомления об отключении 2FA"
|
||||||
|
},
|
||||||
|
"After Register View" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Companion ID" : {
|
"Companion ID" : {
|
||||||
"comment" : "Search placeholder companion title"
|
"comment" : "Search placeholder companion title"
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class LoginViewModel: ObservableObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum OnboardingDestination: Equatable {
|
enum OnboardingDestination: Equatable {
|
||||||
case securitySettings
|
case afterRegister
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum DefaultsKeys {
|
private enum DefaultsKeys {
|
||||||
@ -132,7 +132,7 @@ class LoginViewModel: ObservableObject {
|
|||||||
self?.isLoggedIn = true // 👈 переключаем на главный экран после автологина
|
self?.isLoggedIn = true // 👈 переключаем на главный экран после автологина
|
||||||
self?.loadStoredUser()
|
self?.loadStoredUser()
|
||||||
self?.socketService.connectForCurrentUser()
|
self?.socketService.connectForCurrentUser()
|
||||||
self?.onboardingDestination = .securitySettings
|
self?.onboardingDestination = .afterRegister
|
||||||
} else {
|
} else {
|
||||||
self?.socketService.disconnect()
|
self?.socketService.disconnect()
|
||||||
}
|
}
|
||||||
|
|||||||
20
yobble/Views/Tab/AfterRegisterView.swift
Normal file
20
yobble/Views/Tab/AfterRegisterView.swift
Normal 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()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -22,6 +22,7 @@ struct MainView: View {
|
|||||||
@State private var deepLinkChatItem: PrivateChatListItem?
|
@State private var deepLinkChatItem: PrivateChatListItem?
|
||||||
@State private var isDeepLinkChatActive = false
|
@State private var isDeepLinkChatActive = false
|
||||||
@State private var hasTriggeredSecuritySettingsOnboarding = false
|
@State private var hasTriggeredSecuritySettingsOnboarding = false
|
||||||
|
@State private var isAfterRegisterPresented = false
|
||||||
|
|
||||||
private var tabTitle: String {
|
private var tabTitle: String {
|
||||||
switch selectedTab {
|
switch selectedTab {
|
||||||
@ -174,13 +175,16 @@ struct MainView: View {
|
|||||||
.onAppear {
|
.onAppear {
|
||||||
enforceTabSelectionForMessengerMode()
|
enforceTabSelectionForMessengerMode()
|
||||||
handleTwoFactorOnboardingIfNeeded()
|
handleTwoFactorOnboardingIfNeeded()
|
||||||
|
handleAfterRegisterOnboardingIfNeeded()
|
||||||
}
|
}
|
||||||
.onChange(of: isMessengerModeEnabled) { _ in
|
.onChange(of: isMessengerModeEnabled) { _ in
|
||||||
enforceTabSelectionForMessengerMode()
|
enforceTabSelectionForMessengerMode()
|
||||||
handleTwoFactorOnboardingIfNeeded()
|
handleTwoFactorOnboardingIfNeeded()
|
||||||
|
handleAfterRegisterOnboardingIfNeeded()
|
||||||
}
|
}
|
||||||
.onChange(of: viewModel.onboardingDestination) { _ in
|
.onChange(of: viewModel.onboardingDestination) { _ in
|
||||||
handleTwoFactorOnboardingIfNeeded()
|
handleTwoFactorOnboardingIfNeeded()
|
||||||
|
handleAfterRegisterOnboardingIfNeeded()
|
||||||
}
|
}
|
||||||
.onChange(of: messageCenter.pendingNavigation?.id) { _ in
|
.onChange(of: messageCenter.pendingNavigation?.id) { _ in
|
||||||
guard !AppConfig.PRESENT_CHAT_AS_SHEET,
|
guard !AppConfig.PRESENT_CHAT_AS_SHEET,
|
||||||
@ -209,6 +213,9 @@ struct MainView: View {
|
|||||||
isSettingsPresented = false
|
isSettingsPresented = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.sheet(isPresented: $isAfterRegisterPresented) {
|
||||||
|
AfterRegisterView()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,27 +230,13 @@ private extension MainView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleTwoFactorOnboardingIfNeeded() {
|
|
||||||
guard viewModel.onboardingDestination == .securitySettings else {
|
func handleAfterRegisterOnboardingIfNeeded() {
|
||||||
hasTriggeredSecuritySettingsOnboarding = false
|
guard viewModel.onboardingDestination == .afterRegister else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
guard !hasTriggeredSecuritySettingsOnboarding else { return }
|
isAfterRegisterPresented = true
|
||||||
hasTriggeredSecuritySettingsOnboarding = true
|
|
||||||
|
|
||||||
if isMessengerModeEnabled {
|
|
||||||
if selectedTab != 5 {
|
|
||||||
selectedTab = 5
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if selectedTab != 3 {
|
|
||||||
selectedTab = 3
|
|
||||||
}
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
isSettingsPresented = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var deepLinkNavigationLink: some View {
|
var deepLinkNavigationLink: some View {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user