Don't reload list timeline if edit screen is closed without making changes

This commit is contained in:
Shadowfacts 2022-12-14 21:00:36 -05:00
parent d4b9f71fd3
commit 23e4541eb7
2 changed files with 11 additions and 6 deletions

View File

@ -12,12 +12,12 @@ import Combine
class EditListAccountsViewController: EnhancedTableViewController { class EditListAccountsViewController: EnhancedTableViewController {
private var list: List
let mastodonController: MastodonController let mastodonController: MastodonController
private var list: List var changedAccounts = false
var dataSource: DataSource! var dataSource: DataSource!
var nextRange: RequestRange? var nextRange: RequestRange?
var searchResultsController: SearchResultsViewController! var searchResultsController: SearchResultsViewController!
@ -122,6 +122,7 @@ class EditListAccountsViewController: EnhancedTableViewController {
} }
private func addAccount(id: String) async { private func addAccount(id: String) async {
changedAccounts = true
do { do {
let req = List.add(list, accounts: [id]) let req = List.add(list, accounts: [id])
_ = try await mastodonController.run(req) _ = try await mastodonController.run(req)
@ -137,6 +138,7 @@ class EditListAccountsViewController: EnhancedTableViewController {
} }
private func removeAccount(id: String) async { private func removeAccount(id: String) async {
changedAccounts = true
do { do {
let request = List.remove(list, accounts: [id]) let request = List.remove(list, accounts: [id])
_ = try await mastodonController.run(request) _ = try await mastodonController.run(request)

View File

@ -71,12 +71,15 @@ class ListTimelineViewController: TimelineViewController {
} }
@objc func editListDoneButtonPressed() { @objc func editListDoneButtonPressed() {
let presented = (presentedViewController as? UINavigationController)?.viewControllers.first as? EditListAccountsViewController
dismiss(animated: true) dismiss(animated: true)
// TODO: only reload if there were changes if presented?.changedAccounts == true {
Task { Task {
applyInitialSnapshot() applyInitialSnapshot()
await controller.loadInitial() await controller.loadInitial()
}
} }
} }