dataSource.uiDelegate?.showError("Error creating: \(error.errorDescription)")
setAllFields(enabled: true)
} else {
- dataSource.uiDelegate?.hideOptions()
+ dataSource.uiDelegate?.hideOptions(self)
await dataSource.reload()
}
return
dataSource?.uiDelegate?.showError("Error updating share: \(error.errorDescription)")
setAllFields(enabled: true)
} else {
- dataSource?.uiDelegate?.hideOptions()
+ dataSource?.uiDelegate?.hideOptions(self)
await dataSource?.reload()
}
}
@IBAction func delete(_ sender: Any) {
Task { @MainActor in
guard !createMode else {
- dataSource?.uiDelegate?.hideOptions()
+ dataSource?.uiDelegate?.hideOptions(self)
reset()
return
}
override func viewDidLoad() {
dismissError(self)
- hideOptions()
+ hideOptions(self)
}
@IBAction func closeAction(_ sender: Any) {
}
@IBAction func createShare(_ sender: Any) {
- tableView.deselectAll(self)
optionsView.createMode = true
- splitView.addArrangedSubview(optionsView)
- optionsView.isHidden = false
+ tableView.deselectAll(self)
+ if !splitView.arrangedSubviews.contains(optionsView) {
+ splitView.addArrangedSubview(optionsView)
+ optionsView.isHidden = false
+ }
}
func fetchStarted() {
loadingIndicator.stopAnimation(self)
}
- func hideOptions() {
+ func hideOptions(_ sender: Any) {
+ if sender as? ShareTableViewDataSource == shareDataSource, optionsView.createMode {
+ // Do not hide options if the table view has had everything deselected when we set the
+ // options view to be in create mode
+ return
+ }
splitView.removeArrangedSubview(optionsView)
optionsView.isHidden = true
+
}
func showOptions(share: NKShare) {
guard let kit = shareDataSource.kit else { return }
optionsView.controller = ShareController(share: share, kit: kit)
- splitView.addArrangedSubview(optionsView)
- optionsView.isHidden = false
+ if !splitView.arrangedSubviews.contains(optionsView) {
+ splitView.addArrangedSubview(optionsView)
+ optionsView.isHidden = false
+ }
}
func showError(_ errorString: String) {