NetNewsWire/Multiplatform/macOS/Preferences/Preference Panes/Accounts/Account Preferences/Edit Account/AccountDetailView.swift

84 lines
1.8 KiB
Swift
Raw Normal View History

2020-07-14 04:44:59 +02:00
//
// AccountDetailView.swift
2020-07-14 04:44:59 +02:00
// Multiplatform macOS
//
// Created by Stuart Breckenridge on 14/7/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import SwiftUI
import Account
import Combine
struct AccountDetailView: View {
2020-07-14 04:44:59 +02:00
@ObservedObject var viewModel: AccountsPreferencesModel
var body: some View {
ZStack {
RoundedRectangle(cornerRadius: 8, style: .circular)
.foregroundColor(Color.secondary.opacity(0.1))
.padding(.top, 8)
2020-07-14 04:44:59 +02:00
VStack {
editAccountHeader
2020-07-14 04:44:59 +02:00
if viewModel.account != nil {
editAccountForm
2020-07-14 04:44:59 +02:00
}
Spacer()
}
}
}
var editAccountHeader: some View {
HStack {
Spacer()
Button("Account Information", action: {})
Spacer()
}
.padding([.leading, .trailing, .bottom], 4)
}
var editAccountForm: some View {
Form(content: {
HStack(alignment: .top) {
Text("Type: ")
.frame(width: 50)
VStack(alignment: .leading) {
Text(viewModel.account!.defaultName)
Toggle("Active", isOn: $viewModel.accountIsActive)
}
}
HStack(alignment: .top) {
Text("Name: ")
.frame(width: 50)
VStack(alignment: .leading) {
TextField(viewModel.account!.name ?? "", text: $viewModel.accountName)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("The name appears in the sidebar. It can be anything you want. You can even use emoji. 🎸")
.foregroundColor(.secondary)
}
}
Spacer()
if viewModel.account?.type != .onMyMac {
HStack {
Spacer()
Button("Credentials", action: {
2020-07-14 08:57:55 +02:00
viewModel.sheetToShow = .credentials
})
Spacer()
}
}
2020-07-14 08:57:55 +02:00
})
.padding()
}
2020-07-14 04:44:59 +02:00
}
struct AccountDetailView_Previews: PreviewProvider {
2020-07-14 04:44:59 +02:00
static var previews: some View {
AccountDetailView(viewModel: AccountsPreferencesModel())
2020-07-14 04:44:59 +02:00
}
}