save button improvement and tests updated

This commit is contained in:
Mauro Romito
2023-01-17 18:10:35 +01:00
parent 313f715093
commit e694e89235
5 changed files with 38 additions and 33 deletions
@@ -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
}
}