Add a typealias for `NeedsDependency & UIViewController` (IOS-141)

Well, okay, `ViewControllerWithDependencies` not super creative.
This commit is contained in:
Nathan Mattes 2023-09-20 18:56:34 +02:00
parent a0f7454a3d
commit a7a387dad5
6 changed files with 8 additions and 6 deletions

View File

@ -14,6 +14,8 @@ protocol NeedsDependency: AnyObject {
var coordinator: SceneCoordinator! { get set }
}
typealias ViewControllerWithDependencies = NeedsDependency & UIViewController
extension UISceneSession {
private struct AssociatedKeys {
static var sceneCoordinator = "SceneCoordinator"

View File

@ -26,7 +26,7 @@ extension DataSourceFacade {
@MainActor
static func coordinateToHashtagScene(
provider: NeedsDependency & UIViewController & AuthContextProvider,
provider: ViewControllerWithDependencies & AuthContextProvider,
tag: Mastodon.Entity.Tag
) async {
let hashtagTimelineViewModel = HashtagTimelineViewModel(

View File

@ -33,7 +33,7 @@ extension DataSourceFacade {
@MainActor
static func coordinateToProfileScene(
provider: NeedsDependency & UIViewController & AuthContextProvider,
provider: ViewControllerWithDependencies & AuthContextProvider,
user: ManagedObjectRecord<MastodonUser>
) async {
guard let user = user.object(in: provider.context.managedObjectContext) else {

View File

@ -13,7 +13,7 @@ import UIKit
extension DataSourceFacade {
static func responseToCreateSearchHistory(
provider: NeedsDependency & UIViewController & AuthContextProvider,
provider: ViewControllerWithDependencies & AuthContextProvider,
item: DataSourceItem
) async {
switch item {

View File

@ -12,7 +12,7 @@ import MastodonCore
extension DataSourceFacade {
static func coordinateToStatusThreadScene(
provider: NeedsDependency & UIViewController & AuthContextProvider,
provider: ViewControllerWithDependencies & AuthContextProvider,
target: StatusTarget,
status: ManagedObjectRecord<Status>
) async {
@ -40,7 +40,7 @@ extension DataSourceFacade {
@MainActor
static func coordinateToStatusThreadScene(
provider: NeedsDependency & UIViewController & AuthContextProvider,
provider: ViewControllerWithDependencies & AuthContextProvider,
root: StatusItem.Thread
) async {
let threadViewModel = ThreadViewModel(

View File

@ -44,6 +44,6 @@ extension DataSourceItem {
}
}
protocol DataSourceProvider: NeedsDependency & UIViewController {
protocol DataSourceProvider: ViewControllerWithDependencies {
func item(from source: DataSourceItem.Source) async -> DataSourceItem?
}