2
2
mirror of https://github.com/mastodon/mastodon-ios synced 2025-04-11 22:58:02 +02:00

Reduce nested-ness of tasks (IOS-192)

Thank you @kimar
This commit is contained in:
Nathan Mattes 2024-01-11 15:28:18 +01:00
parent c6788f5a43
commit b8ba69b930
2 changed files with 16 additions and 21 deletions

View File

@ -56,22 +56,20 @@ extension DataSourceFacade {
) async { ) async {
provider.coordinator.showLoading() provider.coordinator.showLoading()
Task { do {
do { guard let account = try await provider.context.apiService.fetchUser(
guard let account = try await provider.context.apiService.fetchUser( username: username,
username: username, domain: domain,
domain: domain, authenticationBox: provider.authContext.mastodonAuthenticationBox
authenticationBox: provider.authContext.mastodonAuthenticationBox ) else {
) else { return provider.coordinator.hideLoading()
return provider.coordinator.hideLoading()
}
provider.coordinator.hideLoading()
await coordinateToProfileScene(provider: provider, account: account)
} catch {
provider.coordinator.hideLoading()
} }
provider.coordinator.hideLoading()
await coordinateToProfileScene(provider: provider, account: account)
} catch {
provider.coordinator.hideLoading()
} }
} }
@ -83,7 +81,6 @@ extension DataSourceFacade {
) async { ) async {
provider.coordinator.showLoading() provider.coordinator.showLoading()
Task {
do { do {
let account = try await provider.context.apiService.accountInfo( let account = try await provider.context.apiService.accountInfo(
domain: domain, domain: domain,
@ -96,7 +93,6 @@ extension DataSourceFacade {
await coordinateToProfileScene(provider: provider, account: account) await coordinateToProfileScene(provider: provider, account: account)
} catch { } catch {
provider.coordinator.hideLoading() provider.coordinator.hideLoading()
}
} }
} }

View File

@ -142,13 +142,12 @@ class MastodonLoginViewController: UIViewController, NeedsDependency {
authenticationViewModel authenticationViewModel
.authenticated.sink { (domain, account) in .authenticated.sink { (domain, account) in
Task { Task { @MainActor in
do { do {
_ = try await self.context.authenticationService.activeMastodonUser(domain: domain, userID: account.id) _ = try await self.context.authenticationService.activeMastodonUser(domain: domain, userID: account.id)
FileManager.default.store(account: account, forUserID: MastodonUserIdentifier(domain: domain, userID: account.id)) FileManager.default.store(account: account, forUserID: MastodonUserIdentifier(domain: domain, userID: account.id))
Task { @MainActor in
self.coordinator.setup() self.coordinator.setup()
}
} catch { } catch {
assertionFailure(error.localizedDescription) assertionFailure(error.localizedDescription)
} }