accounts and email
This commit is contained in:
@@ -8,6 +8,7 @@ public struct SettingsView: View {
|
||||
@State private var apiToken: String = ""
|
||||
@State private var syncFolder: String = ""
|
||||
@State private var defaultUploadFolder: String = ""
|
||||
@State private var newNoteAction: NewNoteAction = .clipboard
|
||||
@State private var autoSync: Bool = true
|
||||
@State private var syncInterval: Double = 30
|
||||
@State private var selectedIcon: String = "tray.circle.fill"
|
||||
@@ -20,28 +21,34 @@ public struct SettingsView: View {
|
||||
}
|
||||
|
||||
public var body: some View {
|
||||
ScrollView {
|
||||
VStack(spacing: 0) {
|
||||
serverSection
|
||||
Divider().padding(.vertical, 16)
|
||||
syncSection
|
||||
Divider().padding(.vertical, 16)
|
||||
uploadsSection
|
||||
Divider().padding(.vertical, 16)
|
||||
appearanceSection
|
||||
|
||||
Spacer(minLength: 32)
|
||||
|
||||
saveButton
|
||||
VStack(spacing: 0) {
|
||||
ScrollView {
|
||||
VStack(spacing: 0) {
|
||||
serverSection
|
||||
Divider().padding(.vertical, 12)
|
||||
syncSection
|
||||
Divider().padding(.vertical, 12)
|
||||
uploadsSection
|
||||
Divider().padding(.vertical, 12)
|
||||
appearanceSection
|
||||
}
|
||||
.padding(20)
|
||||
}
|
||||
.padding(24)
|
||||
.scrollIndicators(.hidden)
|
||||
|
||||
Divider()
|
||||
|
||||
saveButton
|
||||
.padding(.horizontal, 20)
|
||||
.padding(.vertical, 12)
|
||||
}
|
||||
.frame(width: 520, height: 600)
|
||||
.frame(width: 520, height: 640)
|
||||
.onAppear {
|
||||
serverURL = config.serverURL
|
||||
apiToken = config.apiToken ?? ""
|
||||
syncFolder = config.syncFolder ?? ""
|
||||
defaultUploadFolder = config.defaultUploadFolder ?? ""
|
||||
newNoteAction = config.effectiveNewNoteAction
|
||||
autoSync = config.autoSync
|
||||
syncInterval = Double(config.syncInterval)
|
||||
selectedIcon = config.iconName
|
||||
@@ -69,7 +76,7 @@ public struct SettingsView: View {
|
||||
HStack {
|
||||
Spacer()
|
||||
.frame(width: labelWidth)
|
||||
Text("Create an API token from the web app at /account")
|
||||
Text("Create an API token from the web app at /account/tokens/new")
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
.lineLimit(nil)
|
||||
@@ -124,11 +131,20 @@ public struct SettingsView: View {
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.frame(width: 280)
|
||||
}
|
||||
|
||||
formRow(label: "New Note") {
|
||||
Picker("", selection: $newNoteAction) {
|
||||
Text("From Clipboard").tag(NewNoteAction.clipboard)
|
||||
Text("Open Terminal $EDITOR").tag(NewNoteAction.editor)
|
||||
}
|
||||
.pickerStyle(.menu)
|
||||
.frame(width: 200)
|
||||
}
|
||||
|
||||
HStack {
|
||||
Spacer()
|
||||
.frame(width: labelWidth)
|
||||
Text("Notes and uploads will be saved to this folder")
|
||||
Text("Notes and uploads will be saved to this folder. Editor notes upload after the editor exits.")
|
||||
.font(.caption)
|
||||
.foregroundColor(.secondary)
|
||||
.frame(width: 280, alignment: .leading)
|
||||
@@ -166,6 +182,7 @@ public struct SettingsView: View {
|
||||
apiToken: apiToken.isEmpty ? nil : apiToken,
|
||||
syncFolder: syncFolder.isEmpty ? nil : syncFolder,
|
||||
defaultUploadFolder: defaultUploadFolder.isEmpty ? nil : defaultUploadFolder,
|
||||
newNoteAction: newNoteAction,
|
||||
autoSync: autoSync,
|
||||
syncInterval: Int(syncInterval),
|
||||
deviceId: config.deviceId,
|
||||
|
||||
Reference in New Issue
Block a user