aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2025-10-24 23:02:12 -0700
committerDustin Mierau <dustin@mierau.me>2025-10-24 23:02:12 -0700
commitfefede829c12d9f69db72d70231291d973b0c1a2 (patch)
treee51caa817df6fb00063c5179ff0a8a77753a21ae /Hotline/macOS
parentcf113ea053334175b93770b025c1f7d22eda6eab (diff)
Further polish on chat. Try not to persist back to back disconnect messages.
Diffstat (limited to 'Hotline/macOS')
-rw-r--r--Hotline/macOS/ChatView.swift97
1 files changed, 34 insertions, 63 deletions
diff --git a/Hotline/macOS/ChatView.swift b/Hotline/macOS/ChatView.swift
index 12e6c94..a45e7ed 100644
--- a/Hotline/macOS/ChatView.swift
+++ b/Hotline/macOS/ChatView.swift
@@ -4,35 +4,11 @@ enum FocusedField: Int, Hashable {
case chatInput
}
-struct ChatStatusMessageView: View {
- let message: ChatMessage
-
- var body: some View {
- HStack(alignment: .center, spacing: 8) {
- Image(systemName: "arrow.right")
- .resizable()
- .scaledToFit()
- .fontWeight(.semibold)
- .foregroundStyle(.primary)
- .frame(width: 14, height: 14)
-
- Text(message.text)
- .lineLimit(1)
- .truncationMode(.middle)
- .textSelection(.disabled)
-
- Spacer()
- }
- .opacity(0.3)
- }
-}
-
-
struct ChatJoinedMessageView: View {
let message: ChatMessage
var body: some View {
- HStack(alignment: .center, spacing: 8) {
+ HStack(alignment: .center, spacing: 4) {
Image(systemName: "arrow.right")
.resizable()
.scaledToFit()
@@ -56,7 +32,7 @@ struct ChatLeftMessageView: View {
let message: ChatMessage
var body: some View {
- HStack(alignment: .center, spacing: 8) {
+ HStack(alignment: .center, spacing: 4) {
Image(systemName: "arrow.left")
.resizable()
.scaledToFit()
@@ -206,14 +182,9 @@ struct ChatView: View {
}
.padding(.vertical, 24)
}
- // MARK: Server Message
else if msg.type == .server {
ServerMessageView(message: msg.text)
}
- // MARK: Status
- else if msg.type == .status {
- ChatStatusMessageView(message: msg)
- }
else if msg.type == .joined {
ChatJoinedMessageView(message: msg)
}
@@ -313,38 +284,38 @@ struct ChatView: View {
}
}
- private func prepareChatDocument() -> Bool {
- var text: String = String()
-
- self.chatDocument.text = ""
- for msg in model.chat {
- if msg.type == .agreement {
- text.append(msg.text)
- text.append("\n\n")
- }
- else if msg.type == .message {
- if let username = msg.username {
- text.append("\(username): \(msg.text)")
- }
- else {
- text.append(msg.text)
- }
- text.append("\n")
- }
- else if msg.type == .status {
- text.append(msg.text)
- text.append("\n")
- }
- }
-
- if text.isEmpty {
- return false
- }
-
- self.chatDocument.text = text
-
- return true
- }
+// private func prepareChatDocument() -> Bool {
+// var text: String = String()
+//
+// self.chatDocument.text = ""
+// for msg in model.chat {
+// if msg.type == .agreement {
+// text.append(msg.text)
+// text.append("\n\n")
+// }
+// else if msg.type == .message {
+// if let username = msg.username {
+// text.append("\(username): \(msg.text)")
+// }
+// else {
+// text.append(msg.text)
+// }
+// text.append("\n")
+// }
+// else if msg.type == .status {
+// text.append(msg.text)
+// text.append("\n")
+// }
+// }
+//
+// if text.isEmpty {
+// return false
+// }
+//
+// self.chatDocument.text = text
+//
+// return true
+// }
}
#Preview {