mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-22 09:32:52 +02:00
save button improvement and tests updated
This commit is contained in:
@@ -59,20 +59,31 @@ extension ComposerLinkActionViewState {
|
||||
}
|
||||
|
||||
var isSaveButtonDisabled: Bool {
|
||||
guard isValidLink else { return true }
|
||||
guard !bindings.linkUrl.isEmpty else { return true }
|
||||
switch linkAction {
|
||||
case .createWithText: return bindings.text.isEmpty
|
||||
default: return false
|
||||
case .create: return false
|
||||
case .edit: return !bindings.hasEditedUrl
|
||||
}
|
||||
}
|
||||
|
||||
private var isValidLink: Bool {
|
||||
guard let url = URL(string: bindings.linkUrl) else { return false }
|
||||
return UIApplication.shared.canOpenURL(url)
|
||||
}
|
||||
}
|
||||
|
||||
struct ComposerLinkActionBindings {
|
||||
var text: String
|
||||
var linkUrl: String
|
||||
|
||||
private let initialLinkUrl: String
|
||||
fileprivate var hasEditedUrl = false
|
||||
var linkUrl: String {
|
||||
didSet {
|
||||
if !hasEditedUrl && linkUrl != initialLinkUrl {
|
||||
hasEditedUrl = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init(text: String, linkUrl: String) {
|
||||
self.text = text
|
||||
self.linkUrl = linkUrl
|
||||
self.initialLinkUrl = linkUrl
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user