Skip to content

Commit 99b0313

Browse files
author
Chris
authored
Merge pull request #15 from crelies/dev
refactor(): removed unnecessary binding
2 parents 9ffa471 + 43807b0 commit 99b0313

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

Sources/AdvancedList/public/Views/AdvancedList.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public struct AdvancedList<Data: RandomAccessCollection, ListView: View, Content
2323
private var data: Data
2424
private var listView: ((Rows) -> ListView)?
2525
private var content: (Data.Element) -> Content
26-
private var listState: Binding<ListState>
26+
private let listState: ListState
2727
private let emptyStateView: () -> EmptyStateView
2828
private let errorStateView: (Error) -> ErrorStateView
2929
private let loadingStateView: () -> LoadingStateView
@@ -37,11 +37,11 @@ public struct AdvancedList<Data: RandomAccessCollection, ListView: View, Content
3737
/// - data: The data for populating the list.
3838
/// - listView: A view builder that creates a custom list view from the given type erased dynamic view content representing the rows of the list.
3939
/// - content: A view builder that creates the view for a single row of the list.
40-
/// - listState: A binding to a property that determines the state of the list.
40+
/// - listState: A value representing the state of the list.
4141
/// - emptyStateView: A view builder that creates the view for the empty state of the list.
4242
/// - errorStateView: A view builder that creates the view for the error state of the list.
4343
/// - loadingStateView: A view builder that creates the view for the loading state of the list.
44-
public init(_ data: Data, @ViewBuilder listView: @escaping (Rows) -> ListView, @ViewBuilder content: @escaping (Data.Element) -> Content, listState: Binding<ListState>, @ViewBuilder emptyStateView: @escaping () -> EmptyStateView, @ViewBuilder errorStateView: @escaping (Error) -> ErrorStateView, @ViewBuilder loadingStateView: @escaping () -> LoadingStateView) {
44+
public init(_ data: Data, @ViewBuilder listView: @escaping (Rows) -> ListView, @ViewBuilder content: @escaping (Data.Element) -> Content, listState: ListState, @ViewBuilder emptyStateView: @escaping () -> EmptyStateView, @ViewBuilder errorStateView: @escaping (Error) -> ErrorStateView, @ViewBuilder loadingStateView: @escaping () -> LoadingStateView) {
4545
self.data = data
4646
self.listView = listView
4747
self.content = content
@@ -60,11 +60,11 @@ extension AdvancedList where ListView == List<Never, AnyDynamicViewContent> {
6060
/// - Parameters:
6161
/// - data: The data for populating the list.
6262
/// - content: A view builder that creates the view for a single row of the list.
63-
/// - listState: A binding to a property that determines the state of the list.
63+
/// - listState: A value representing the state of the list.
6464
/// - emptyStateView: A view builder that creates the view for the empty state of the list.
6565
/// - errorStateView: A view builder that creates the view for the error state of the list.
6666
/// - loadingStateView: A view builder that creates the view for the loading state of the list.
67-
public init(_ data: Data, @ViewBuilder content: @escaping (Data.Element) -> Content, listState: Binding<ListState>, @ViewBuilder emptyStateView: @escaping () -> EmptyStateView, @ViewBuilder errorStateView: @escaping (Error) -> ErrorStateView, @ViewBuilder loadingStateView: @escaping () -> LoadingStateView) {
67+
public init(_ data: Data, @ViewBuilder content: @escaping (Data.Element) -> Content, listState: ListState, @ViewBuilder emptyStateView: @escaping () -> EmptyStateView, @ViewBuilder errorStateView: @escaping (Error) -> ErrorStateView, @ViewBuilder loadingStateView: @escaping () -> LoadingStateView) {
6868
self.data = data
6969
self.content = content
7070
self.listState = listState
@@ -78,7 +78,7 @@ extension AdvancedList where ListView == List<Never, AnyDynamicViewContent> {
7878

7979
extension AdvancedList {
8080
@ViewBuilder public var body: some View {
81-
switch listState.wrappedValue {
81+
switch listState {
8282
case .items:
8383
if !data.isEmpty {
8484
VStack {
@@ -201,7 +201,7 @@ struct AdvancedList_Previews : PreviewProvider {
201201
NavigationView {
202202
AdvancedList(items, content: { element in
203203
Text(element.id)
204-
}, listState: $listState, emptyStateView: {
204+
}, listState: listState, emptyStateView: {
205205
Text("No data")
206206
}, errorStateView: { error in
207207
VStack {

Tests/AdvancedListTests/AdvancedListTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ final class AdvancedListTests: XCTestCase {
1818
private lazy var loadingStateView = Text(loadingStateString)
1919

2020
func testEmptyStateView() {
21-
let emptyListState: Binding<ListState> = .constant(.items)
21+
let emptyListState: ListState = .items
2222

2323
let items: [String] = []
2424

@@ -41,7 +41,7 @@ final class AdvancedListTests: XCTestCase {
4141
}
4242

4343
func testNotEmptyStateView() {
44-
let itemsListState: Binding<ListState> = .constant(.items)
44+
let itemsListState: ListState = .items
4545

4646
let mockItem1 = "MockItem1"
4747
let mockItem2 = "MockItem2"
@@ -73,7 +73,7 @@ final class AdvancedListTests: XCTestCase {
7373
}
7474

7575
func testLoadingStateView() {
76-
let loadingListState: Binding<ListState> = .constant(.loading)
76+
let loadingListState: ListState = .loading
7777

7878
let items: [String] = []
7979

@@ -97,7 +97,7 @@ final class AdvancedListTests: XCTestCase {
9797

9898
func testErrorStateView() {
9999
let error = NSError(domain: "MockDomain", code: 1, userInfo: nil)
100-
let errorListState: Binding<ListState> = .constant(.error(error))
100+
let errorListState: ListState = .error(error)
101101

102102
let items: [String] = []
103103

0 commit comments

Comments
 (0)