Handle 401 errors on instance timelines

This commit is contained in:
Shadowfacts 2023-02-05 11:18:23 -05:00
parent 825424cfba
commit c114749519
1 changed files with 49 additions and 38 deletions

View File

@ -84,8 +84,23 @@ class InstanceTimelineViewController: TimelineViewController {
// MARK: Timeline // MARK: Timeline
override func handleLoadAllError(_ error: Swift.Error) async { override func handleLoadAllError(_ error: Swift.Error) async {
switch (error as? Client.Error)?.type { guard let error = error as? Client.Error else {
case .mastodonError(422, _), .unexpectedStatus(422): await super.handleLoadAllError(error)
return
}
let code: Int
switch error.type {
case .mastodonError(let c, _), .unexpectedStatus(let c):
code = c
default:
await super.handleLoadAllError(error)
return
}
guard code == 422 || code == 401 else {
await super.handleLoadAllError(error)
return
}
collectionView.isHidden = true collectionView.isHidden = true
view.backgroundColor = .systemBackground view.backgroundColor = .systemBackground
@ -121,10 +136,6 @@ class InstanceTimelineViewController: TimelineViewController {
view.safeAreaLayoutGuide.trailingAnchor.constraint(equalToSystemSpacingAfter: stack.trailingAnchor, multiplier: 1), view.safeAreaLayoutGuide.trailingAnchor.constraint(equalToSystemSpacingAfter: stack.trailingAnchor, multiplier: 1),
stack.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor), stack.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor),
]) ])
default:
await super.handleLoadAllError(error)
}
} }
// MARK: Interaction // MARK: Interaction