diff --git a/Sources/BSWInterfaceKit/SwiftUI/DataSource/InfiniteScrollingDataSource.swift b/Sources/BSWInterfaceKit/SwiftUI/DataSource/InfiniteScrollingDataSource.swift index 9cabf1b0..6824595b 100644 --- a/Sources/BSWInterfaceKit/SwiftUI/DataSource/InfiniteScrollingDataSource.swift +++ b/Sources/BSWInterfaceKit/SwiftUI/DataSource/InfiniteScrollingDataSource.swift @@ -1,16 +1,17 @@ -#if canImport(Darwin) import SwiftUI -import Combine +import Observation /// As of iOS 18 and aligned releases, this is no longer recommended as /// there are cleaner alternatives like `InfiniteVerticalScrollView` @MainActor -open class InfiniteScrollingDataSource: ObservableObject { +@Observable +open class InfiniteScrollingDataSource { - @Published public private(set) var items = [ListItem]() - @Published public private(set) var state: State - @Published public var paginationError: Error? + public private(set) var items = [ListItem]() + public private(set) var state: State + public var paginationError: Error? + @ObservationIgnored private var itemFetcher: ItemFetcher public enum State: Equatable { @@ -106,5 +107,3 @@ open class InfiniteScrollingDataSource: Obser } } } - -#endif diff --git a/Sources/BSWInterfaceKit/SwiftUI/Previews/InfiniteScrollingDataSource+Preview.swift b/Sources/BSWInterfaceKit/SwiftUI/Previews/InfiniteScrollingDataSource+Preview.swift index 2912096a..3d60c4e8 100644 --- a/Sources/BSWInterfaceKit/SwiftUI/Previews/InfiniteScrollingDataSource+Preview.swift +++ b/Sources/BSWInterfaceKit/SwiftUI/Previews/InfiniteScrollingDataSource+Preview.swift @@ -48,7 +48,7 @@ struct InfiniteDataSource_Previews: PreviewProvider { struct ItemListView: View { - @StateObject var dataSource: ItemInfiniteDataSource + var dataSource: ItemInfiniteDataSource var body: some View { List { @@ -67,7 +67,7 @@ struct InfiniteDataSource_Previews: PreviewProvider { struct FooterView: View { - @ObservedObject var dataSource: ItemInfiniteDataSource + var dataSource: ItemInfiniteDataSource var body: some View { HStack(spacing: 8) {