Skip to content

Commit a6b295f

Browse files
committed
Keep the errorState free of IDs
1 parent 7533b83 commit a6b295f

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

Modules/Sources/PointOfSale/Models/PointOfSaleErrorState.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Foundation
22
import enum Alamofire.AFError
33

4-
struct PointOfSaleErrorState: Equatable, Identifiable {
4+
struct PointOfSaleErrorState: Equatable {
55
enum ErrorType: Equatable {
66
case initialCatalogSyncError
77
case refreshCatalogSyncError
@@ -17,7 +17,6 @@ struct PointOfSaleErrorState: Equatable, Identifiable {
1717
case ordersNextPageError
1818
}
1919

20-
let id = UUID()
2120
let errorType: ErrorType
2221
let title: String
2322
let subtitle: String

Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ struct POSSettingsLocalCatalogDetailView: View {
2929
.task {
3030
await viewModel.loadCatalogData()
3131
}
32-
.posModal(item: $viewModel.catalogRefreshError) { errorState in
33-
errorView(errorState: errorState)
32+
.posModal(item: $viewModel.catalogRefreshError) { error in
33+
errorView(errorState: error.errorState)
3434
}
3535
}
3636
}

Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ final class POSSettingsLocalCatalogViewModel {
1212
private(set) var isLoading: Bool = false
1313
private(set) var isRefreshingCatalog: Bool = false
1414

15-
var catalogRefreshError: PointOfSaleErrorState? = nil
15+
var catalogRefreshError: POSIdentifiableErrorState? = nil
1616

1717
private let siteID: Int64
1818
private let catalogSettingsService: POSCatalogSettingsServiceProtocol
@@ -89,7 +89,7 @@ final class POSSettingsLocalCatalogViewModel {
8989
} catch {
9090
DDLogError("⛔️ POSSettingsLocalCatalog: Failed to refresh catalog: \(error)")
9191
isRefreshingCatalog = false
92-
catalogRefreshError = PointOfSaleErrorState.errorOnRefreshingCatalog(error: error)
92+
catalogRefreshError = POSIdentifiableErrorState(errorState: .errorOnRefreshingCatalog(error: error))
9393
}
9494
}
9595

@@ -177,3 +177,8 @@ private extension POSSettingsLocalCatalogViewModel {
177177
)
178178
}
179179
}
180+
181+
struct POSIdentifiableErrorState: Identifiable, Equatable {
182+
let errorState: PointOfSaleErrorState
183+
let id = UUID()
184+
}

Modules/Tests/PointOfSaleTests/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ struct POSSettingsLocalCatalogViewModelTests {
191191

192192
// Then
193193
let catalogRefreshError = try #require(sut.catalogRefreshError)
194-
#expect(catalogRefreshError.errorType == .refreshCatalogSyncError)
194+
#expect(catalogRefreshError.errorState.errorType == .refreshCatalogSyncError)
195195
}
196196

197197
// MARK: - Test Concurrent Operations

0 commit comments

Comments
 (0)