mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2025-09-03 16:33:48 +00:00
Only ask for draft when text entered by user (#251)
This commit is contained in:
parent
a37d059026
commit
1c679186b0
2 changed files with 17 additions and 2 deletions
|
@ -125,7 +125,7 @@ public struct StatusEditorView: View {
|
||||||
}
|
}
|
||||||
ToolbarItem(placement: .navigationBarLeading) {
|
ToolbarItem(placement: .navigationBarLeading) {
|
||||||
Button {
|
Button {
|
||||||
if !viewModel.statusText.string.isEmpty && !viewModel.mode.isInShareExtension {
|
if viewModel.shouldDisplayDismissWarning {
|
||||||
isDismissAlertPresented = true
|
isDismissAlertPresented = true
|
||||||
} else {
|
} else {
|
||||||
dismiss()
|
dismiss()
|
||||||
|
|
|
@ -60,6 +60,16 @@ public class StatusEditorViewModel: ObservableObject {
|
||||||
showPoll || !selectedMedias.isEmpty
|
showPoll || !selectedMedias.isEmpty
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var shouldDisplayDismissWarning: Bool {
|
||||||
|
var modifiedStatusText = statusText.string.trimmingCharacters(in: .whitespaces)
|
||||||
|
|
||||||
|
if let mentionString, modifiedStatusText.hasPrefix(mentionString) {
|
||||||
|
modifiedStatusText = String(modifiedStatusText.dropFirst(mentionString.count))
|
||||||
|
}
|
||||||
|
|
||||||
|
return !modifiedStatusText.isEmpty && !mode.isInShareExtension
|
||||||
|
}
|
||||||
|
|
||||||
@Published var visibility: Models.Visibility = .pub
|
@Published var visibility: Models.Visibility = .pub
|
||||||
|
|
||||||
@Published var mentionsSuggestions: [Account] = []
|
@Published var mentionsSuggestions: [Account] = []
|
||||||
|
@ -68,9 +78,10 @@ public class StatusEditorViewModel: ObservableObject {
|
||||||
private var currentSuggestionRange: NSRange?
|
private var currentSuggestionRange: NSRange?
|
||||||
|
|
||||||
private var embeddedStatusURL: URL? {
|
private var embeddedStatusURL: URL? {
|
||||||
return URL(string: embeddedStatus?.reblog?.url ?? embeddedStatus?.url ?? "")
|
URL(string: embeddedStatus?.reblog?.url ?? embeddedStatus?.url ?? "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var mentionString: String?
|
||||||
private var uploadTask: Task<Void, Never>?
|
private var uploadTask: Task<Void, Never>?
|
||||||
|
|
||||||
init(mode: Mode) {
|
init(mode: Mode) {
|
||||||
|
@ -171,6 +182,10 @@ public class StatusEditorViewModel: ObservableObject {
|
||||||
visibility = status.visibility
|
visibility = status.visibility
|
||||||
statusText = .init(string: mentionString)
|
statusText = .init(string: mentionString)
|
||||||
selectedRange = .init(location: mentionString.utf16.count, length: 0)
|
selectedRange = .init(location: mentionString.utf16.count, length: 0)
|
||||||
|
|
||||||
|
if !mentionString.isEmpty {
|
||||||
|
self.mentionString = mentionString.trimmingCharacters(in: .whitespaces)
|
||||||
|
}
|
||||||
case let .mention(account, visibility):
|
case let .mention(account, visibility):
|
||||||
statusText = .init(string: "@\(account.acct) ")
|
statusText = .init(string: "@\(account.acct) ")
|
||||||
self.visibility = visibility
|
self.visibility = visibility
|
||||||
|
|
Loading…
Reference in a new issue