aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/ServerView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/macOS/ServerView.swift')
-rw-r--r--Hotline/macOS/ServerView.swift54
1 files changed, 31 insertions, 23 deletions
diff --git a/Hotline/macOS/ServerView.swift b/Hotline/macOS/ServerView.swift
index a385109..337882b 100644
--- a/Hotline/macOS/ServerView.swift
+++ b/Hotline/macOS/ServerView.swift
@@ -112,13 +112,13 @@ private func connectionStatusToProgress(status: HotlineClientStatus) -> Double {
struct ServerView: View {
@Environment(Hotline.self) private var model: Hotline
+ @Environment(Prefs.self) private var preferences: Prefs
@Environment(\.dismiss) var dismiss
@Environment(\.controlActiveState) private var controlActiveState
@State private var agreementShown: Bool = false
@State private var selection: MenuItem? = ServerView.menuItems.first
-
let server: Server
static var menuItems = [
@@ -129,6 +129,28 @@ struct ServerView: View {
// MenuItem(name: "Tasks", image: "arrow.up.circle", type: .tasks),
]
+ @MainActor func sendPreferences() {
+ if self.model.status == .loggedIn {
+ var options: HotlineUserOptions = HotlineUserOptions()
+
+ if preferences.refusePrivateMessages {
+ options.update(with: .refusePrivateMessages)
+ }
+
+ if preferences.refusePrivateChat {
+ options.update(with: .refusePrivateChat)
+ }
+
+ if preferences.enableAutomaticMessage {
+ options.update(with: .automaticResponse)
+ }
+
+ print("Updating preferences with server")
+
+ self.model.sendUserInfo(username: preferences.username, iconID: preferences.userIconID, options: options, autoresponse: preferences.automaticMessage)
+ }
+ }
+
var body: some View {
NavigationSplitView {
List(selection: $selection) {
@@ -238,13 +260,13 @@ struct ServerView: View {
.navigationTitle("")
.onAppear {
print(" YAYY")
- self.model.login(server: self.server, login: "", password: "", username: "bolt", iconID: 128) { success in
+ self.model.login(server: self.server, login: "", password: "", username: preferences.username, iconID: preferences.userIconID) { success in
if !success {
print("FAILED LOGIN??")
}
else {
print("GETTING USER LIST????!")
- self.model.sendUserInfo(username: "bolt", iconID: 128)
+ self.sendPreferences()
self.model.getUserList()
}
}
@@ -257,26 +279,12 @@ struct ServerView: View {
dismiss()
}
}
-// .onChange(of: model.agreement) {
-// if model.agreement != nil {
-// agreementShown = true
-// }
-// }
-// .sheet(isPresented: $agreementShown, onDismiss: {
-// if model.status == .disconnected {
-// dismiss()
-// }
-// }, content: {
-// if let text = model.agreement {
-// AgreementView(text: text, disagree: {
-// self.model.disconnect()
-// print("DISAGREE")
-// }, agree: {
-// print("AGREE?")
-// })
-//// .frame(minWidth: 300, maxWidth: 500, minHeight: 300)
-// }
-// })
+ .onChange(of: preferences.userIconID) { self.sendPreferences() }
+ .onChange(of: preferences.username) { self.sendPreferences() }
+ .onChange(of: preferences.refusePrivateMessages) { self.sendPreferences() }
+ .onChange(of: preferences.refusePrivateChat) { self.sendPreferences() }
+ .onChange(of: preferences.enableAutomaticMessage) { self.sendPreferences() }
+ .onChange(of: preferences.automaticMessage) { self.sendPreferences() }
}
}