aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/MessageBoardEditorView.swift
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2025-10-27 21:48:20 -0700
committerDustin Mierau <dustin@mierau.me>2025-10-27 21:48:20 -0700
commit4bb0ffba596e41a8309ba50d222248a0ba3eb42e (patch)
treefcd1c2b11c071a624d0b3b56ed16340272200c7d /Hotline/macOS/MessageBoardEditorView.swift
parent924012e6ee03fff5570e9362e29be9b04816b777 (diff)
Random project housekeeping/organizing source files.
Diffstat (limited to 'Hotline/macOS/MessageBoardEditorView.swift')
-rw-r--r--Hotline/macOS/MessageBoardEditorView.swift117
1 files changed, 0 insertions, 117 deletions
diff --git a/Hotline/macOS/MessageBoardEditorView.swift b/Hotline/macOS/MessageBoardEditorView.swift
deleted file mode 100644
index 474384e..0000000
--- a/Hotline/macOS/MessageBoardEditorView.swift
+++ /dev/null
@@ -1,117 +0,0 @@
-import SwiftUI
-
-private enum FocusFields {
- case body
-}
-
-struct MessageBoardEditorView: View {
- @Environment(\.controlActiveState) private var controlActiveState
- @Environment(\.colorScheme) private var colorScheme
- @Environment(\.dismiss) private var dismiss
- @Environment(Hotline.self) private var model: Hotline
-
- @State private var text: String = ""
- @State private var sending: Bool = false
-
- @FocusState private var focusedField: FocusFields?
-
- func sendPost() async {
- sending = true
-
- let cleanedText = text.trimmingCharacters(in: .whitespacesAndNewlines)
-
- model.postToMessageBoard(text: cleanedText)
- let _ = await model.getMessageBoard()
-
-// let success = await model.postNewsArticle(title: title, body: text, at: path, parentID: parentID)
-// if success {
-// await model.getNewsList(at: path)
-// }
-
- sending = false
- }
-
- var body: some View {
- VStack(alignment: .leading, spacing: 0) {
- HStack(alignment: .center, spacing: 0) {
- Button {
- dismiss()
- } label: {
- Image(systemName: "xmark")
- .resizable()
- .scaledToFit()
- .frame(width: 14, height: 14)
- .opacity(0.5)
- }
- .buttonStyle(.plain)
- .frame(width: 16, height: 16)
-
- Spacer()
-
-// Image("Message Board Post")
-// .resizable()
-// .scaledToFit()
-// .frame(width: 16, height: 16)
-// .padding(.trailing, 6)
-
- Text("New Post")
- .fontWeight(.semibold)
- .lineLimit(1)
- .truncationMode(.middle)
-
- Spacer()
-
- if sending {
- ProgressView()
- .controlSize(.small)
- .frame(width: 22, height: 22)
- }
- else {
- Button {
- sending = true
- model.postToMessageBoard(text: text)
- Task {
- let _ = await model.getMessageBoard()
- Task { @MainActor in
- sending = false
- dismiss()
- }
- }
- } label: {
- Image(systemName: "arrow.up.circle.fill")
- .resizable()
- .renderingMode(.template)
- .scaledToFit()
- .foregroundColor(text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty ? .secondary : .accentColor)
- }
- .buttonStyle(.plain)
- .frame(width: 22, height: 22)
- .help("Post to Message Board")
- .disabled(text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)
- }
- }
- .frame(maxWidth: .infinity)
- .padding()
-
- Divider()
-
- BetterTextEditor(text: $text)
- .betterEditorFont(NSFont.systemFont(ofSize: 14.0))
- .betterEditorAutomaticSpellingCorrection(true)
- .betterEditorTextInset(.init(width: 16, height: 18))
- .lineSpacing(20)
- .background(Color(nsColor: .textBackgroundColor))
- .frame(maxWidth: .infinity, maxHeight: .infinity)
- .focused($focusedField, equals: .body)
- }
- .frame(minWidth: 300, idealWidth: 450, maxWidth: .infinity, minHeight: 300, idealHeight: 500, maxHeight: .infinity)
- .background(Color(nsColor: .textBackgroundColor))
- .presentationCompactAdaptation(.sheet)
- .onAppear {
- focusedField = .body
- }
- .onDisappear {
- dismiss()
- }
- }
-}