Page MenuHomeMusing Studio

No OneTemporary

diff --git a/iOS/PostEditor/PostTextEditingView.swift b/iOS/PostEditor/PostTextEditingView.swift
index 0482f7d..3bf07b9 100644
--- a/iOS/PostEditor/PostTextEditingView.swift
+++ b/iOS/PostEditor/PostTextEditingView.swift
@@ -1,87 +1,94 @@
import SwiftUI
struct PostTextEditingView: View {
@Environment(\.horizontalSizeClass) var horizontalSizeClass
+ @EnvironmentObject var model: WriteFreelyModel
@ObservedObject var post: WFAPost
@Binding var updatingTitleFromServer: Bool
@Binding var updatingBodyFromServer: Bool
@State private var appearance: PostAppearance = .serif
@State private var titleTextStyle: UIFont = UIFont(name: "Lora-Regular", size: 26)!
@State private var titleIsFirstResponder: Bool = true
@State private var bodyTextStyle: UIFont = UIFont(name: "Lora-Regular", size: 17)!
@State private var bodyIsFirstResponder: Bool = false
private let lineSpacingMultiplier: CGFloat = 0.5
private let textEditorHeight: CGFloat = 50
init(
post: ObservedObject<WFAPost>,
updatingTitleFromServer: Binding<Bool>,
updatingBodyFromServer: Binding<Bool>
) {
self._post = post
self._updatingTitleFromServer = updatingTitleFromServer
self._updatingBodyFromServer = updatingBodyFromServer
UITextView.appearance().backgroundColor = .clear
}
var body: some View {
ScrollView(.vertical) {
MultilineTextField(
"Title (optional)",
text: $post.title,
font: titleTextStyle,
isFirstResponder: $titleIsFirstResponder,
onCommit: didFinishEditingTitle
)
.accessibilityLabel(Text("Title (optional)"))
.accessibilityHint(Text("Add or edit the title for your post; use the Return key to skip to the body"))
- .onChange(of: post.title) { _ in
+ .onChange(of: post.title) { value in
if post.status == PostStatus.published.rawValue && !updatingTitleFromServer {
post.status = PostStatus.edited.rawValue
}
if updatingTitleFromServer {
updatingTitleFromServer = false
}
+ if post.status == PostStatus.edited.rawValue && value == model.editor.initialPostTitle {
+ post.status = PostStatus.published.rawValue
+ }
}
MultilineTextField(
"Write...",
text: $post.body,
font: bodyTextStyle,
isFirstResponder: $bodyIsFirstResponder
)
.accessibilityLabel(Text("Body"))
.accessibilityHint(Text("Add or edit the body of your post"))
- .onChange(of: post.body) { _ in
+ .onChange(of: post.body) { value in
if post.status == PostStatus.published.rawValue && !updatingBodyFromServer {
post.status = PostStatus.edited.rawValue
}
if updatingBodyFromServer {
updatingBodyFromServer = false
}
+ if post.status == PostStatus.edited.rawValue && value == model.editor.initialPostBody {
+ post.status = PostStatus.published.rawValue
+ }
}
}
.onChange(of: titleIsFirstResponder, perform: { value in
self.bodyIsFirstResponder = !value
})
.onAppear(perform: {
switch post.appearance {
case "sans":
self.appearance = .sans
case "wrap", "mono", "code":
self.appearance = .mono
default:
self.appearance = .serif
}
self.titleTextStyle = UIFont(name: appearance.rawValue, size: 26)!
self.bodyTextStyle = UIFont(name: appearance.rawValue, size: 17)!
})
.onDisappear {
hideKeyboard()
}
}
private func didFinishEditingTitle() {
self.titleIsFirstResponder = false
self.bodyIsFirstResponder = true
}
}

File Metadata

Mime Type
text/x-diff
Expires
Fri, Dec 26, 4:18 AM (17 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3561074

Event Timeline