99 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
import SwiftUI
 | 
						||
 | 
						||
struct SettingsView: View {
 | 
						||
    @ObservedObject var viewModel: LoginViewModel
 | 
						||
    @AppStorage("isDarkMode") private var isDarkMode: Bool = true
 | 
						||
 | 
						||
    var body: some View {
 | 
						||
        Form {
 | 
						||
            // MARK: - Профиль
 | 
						||
            Section(header: Text("Профиль")) {
 | 
						||
                NavigationLink(destination: EditProfileView()) {
 | 
						||
                    Label("Мой профиль", systemImage: "person.crop.circle")
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - Безопасность
 | 
						||
            Section(header: Text("Безопасность")) {
 | 
						||
                NavigationLink(destination: Text("Заглушка: Сменить пароль")) {
 | 
						||
                    Label("Сменить пароль", systemImage: "key")
 | 
						||
                }
 | 
						||
                NavigationLink(destination: Text("Заглушка: Двухфакторная аутентификация")) {
 | 
						||
                    Label("Двухфакторная аутентификация", systemImage: "lock.shield")
 | 
						||
                }
 | 
						||
                NavigationLink(destination: Text("Заглушка: Активные сессии")) {
 | 
						||
                    Label("Активные сессии", systemImage: "iphone")
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - Приложение
 | 
						||
            Section(header: Text("Приложение")) {
 | 
						||
                Button(action: openLanguageSettings) {
 | 
						||
                    Label("Язык", systemImage: "globe")
 | 
						||
                }
 | 
						||
 | 
						||
                Toggle(isOn: $isDarkMode) {
 | 
						||
                    Label("Тёмная тема", systemImage: "moon.fill")
 | 
						||
                }
 | 
						||
 | 
						||
                NavigationLink(destination: Text("Заглушка: Хранилище данных")) {
 | 
						||
                    Label("Данные", systemImage: "externaldrive")
 | 
						||
                }
 | 
						||
 | 
						||
                NavigationLink(destination: Text("Заглушка: Другие настройки")) {
 | 
						||
                    Label("Другое", systemImage: "ellipsis.circle")
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - Уведомления
 | 
						||
            Section(header: Text("Уведомления")) {
 | 
						||
                NavigationLink(destination: Text("Заглушка: Push-уведомления")) {
 | 
						||
                    Label("Push-уведомления", systemImage: "bell")
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - Поддержка
 | 
						||
            Section(header: Text("Поддержка")) {
 | 
						||
                NavigationLink(destination: Text("Заглушка: Частые вопросы")) {
 | 
						||
                    Label("Частые вопросы", systemImage: "questionmark.circle")
 | 
						||
                }
 | 
						||
                NavigationLink(destination: Text("Заглушка: Обратная связь")) {
 | 
						||
                    Label("Обратная связь", systemImage: "paperplane")
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - О приложении
 | 
						||
            Section(header: Text("О приложении")) {
 | 
						||
                VStack(alignment: .leading, spacing: 6) {
 | 
						||
                    Text(AppInfo.text_1)
 | 
						||
                    Text(AppInfo.text_2)
 | 
						||
                    Text(AppInfo.text_3)
 | 
						||
                }
 | 
						||
                .font(.footnote)
 | 
						||
                .foregroundColor(.gray)
 | 
						||
                .padding(.vertical, 4)
 | 
						||
            }
 | 
						||
 | 
						||
            // MARK: - Выход
 | 
						||
            Section {
 | 
						||
                Button(action: {
 | 
						||
                    viewModel.logoutCurrentUser()
 | 
						||
                }) {
 | 
						||
                    HStack {
 | 
						||
                        Image(systemName: "arrow.backward.square")
 | 
						||
                        Text("Выйти из аккаунта")
 | 
						||
                    }
 | 
						||
                    .foregroundColor(.red)
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        .navigationTitle("Настройки")
 | 
						||
    }
 | 
						||
    
 | 
						||
    private func openLanguageSettings() {
 | 
						||
        guard let url = URL(string: UIApplication.openSettingsURLString) else { return }
 | 
						||
        UIApplication.shared.open(url)
 | 
						||
    }
 | 
						||
 | 
						||
}
 |