Skip to content

Commit 3468eaa

Browse files
committed
Replace previews with default empty values
1 parent 86b78cc commit 3468eaa

File tree

2 files changed

+52
-63
lines changed

2 files changed

+52
-63
lines changed

Modules/Sources/PointOfSale/Environment/POSEnvironmentKeys.swift

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,27 @@ import struct Yosemite.Site
77

88
/// Environment key for POS analytics service in SwiftUI
99
public struct POSAnalyticsKey: EnvironmentKey {
10-
public static let defaultValue: POSAnalyticsProviding = DefaultPOSAnalytics()
11-
}
12-
13-
/// Default implementation that does nothing (for previews/testing)
14-
private struct DefaultPOSAnalytics: POSAnalyticsProviding {
15-
func track(event: WooAnalyticsEvent) {
16-
// No-op implementation for previews/testing
17-
}
18-
19-
func track(_ stat: WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType] = [:]) {
20-
// No-op implementation for previews/testing
21-
}
22-
23-
func track(_ stat: WooAnalyticsStat) {
24-
// No-op implementation for previews/testing
25-
}
26-
27-
func track(_ stat: WooFoundationCore.WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType], error: any Error) {
28-
// No-op implementation for previews/testing
29-
}
10+
public static let defaultValue: POSAnalyticsProviding = EmptyPOSAnalytics()
3011
}
3112

3213
/// Environment key for POS currency settings
3314
public struct POSCurrencySettingsKey: EnvironmentKey {
34-
public static let defaultValue: CurrencySettings = CurrencySettings()
15+
public static let defaultValue: POSCurrencySettingsProviding = EmptyPOSCurrencySettings()
3516
}
3617

3718
/// Environment key for POS feature flags service
3819
public struct POSFeatureFlagsKey: EnvironmentKey {
39-
public static let defaultValue: POSFeatureFlagProviding = DefaultPOSFeatureFlags()
20+
public static let defaultValue: POSFeatureFlagProviding = EmptyPOSFeatureFlags()
4021
}
4122

4223
/// Environment key for POS session manager
4324
public struct POSSessionManagerKey: EnvironmentKey {
44-
public static let defaultValue: POSSessionManagerProviding = DefaultPOSSessionManager()
25+
public static let defaultValue: POSSessionManagerProviding = EmptyPOSSessionManager()
4526
}
4627

4728
/// Environment key for POS connectivity
4829
public struct POSConnectivityKey: EnvironmentKey {
49-
public static let defaultValue: ConnectivityObserver = DefaultPOSConnectivity()
50-
}
51-
52-
private struct DefaultPOSSessionManager: POSSessionManagerProviding {
53-
var defaultSite: Site? = nil
54-
}
55-
56-
private struct DefaultPOSFeatureFlags: POSFeatureFlagProviding {
57-
func isFeatureFlagEnabled(_ flag: FeatureFlag) -> Bool { false }
58-
}
59-
60-
private class DefaultPOSConnectivity: ConnectivityObserver {
61-
@Published private(set) var currentStatus: ConnectivityStatus = .reachable(type: .ethernetOrWiFi)
62-
var statusPublisher: AnyPublisher<ConnectivityStatus, Never> { $currentStatus.eraseToAnyPublisher() }
63-
func startObserving() {}
64-
func stopObserving() {}
30+
public static let defaultValue: POSConnectivityProviding = EmptyPOSConnectivityProvider()
6531
}
6632

6733
public extension EnvironmentValues {
@@ -70,7 +36,7 @@ public extension EnvironmentValues {
7036
set { self[POSAnalyticsKey.self] = newValue }
7137
}
7238

73-
var posCurrencySettings: CurrencySettings {
39+
var posCurrencyProvider: POSCurrencySettingsProviding {
7440
get { self[POSCurrencySettingsKey.self] }
7541
set { self[POSCurrencySettingsKey.self] = newValue }
7642
}
@@ -85,8 +51,46 @@ public extension EnvironmentValues {
8551
set { self[POSSessionManagerKey.self] = newValue }
8652
}
8753

88-
var posConnectivity: ConnectivityObserver {
54+
var posConnectivityProvider: POSConnectivityProviding {
8955
get { self[POSConnectivityKey.self] }
9056
set { self[POSConnectivityKey.self] = newValue }
9157
}
9258
}
59+
60+
// MARK: - Empty Default Values
61+
62+
public struct EmptyPOSSessionManager: POSSessionManagerProviding {
63+
public var defaultSite: Site? = nil
64+
public init() {}
65+
}
66+
67+
public struct EmptyPOSFeatureFlags: POSFeatureFlagProviding {
68+
public func isFeatureFlagEnabled(_ flag: FeatureFlag) -> Bool { false }
69+
public init() {}
70+
}
71+
72+
public struct EmptyPOSCurrencySettings: POSCurrencySettingsProviding {
73+
public var currencySettings = CurrencySettings()
74+
public init() {}
75+
}
76+
77+
public class EmptyPOSConnectivityProvider: POSConnectivityProviding {
78+
public var connectivityObserver: WooFoundation.ConnectivityObserver = EmptyPOSConnectivity()
79+
public init() {}
80+
}
81+
82+
public class EmptyPOSConnectivity: ConnectivityObserver {
83+
@Published private(set) public var currentStatus: ConnectivityStatus = .reachable(type: .ethernetOrWiFi)
84+
public var statusPublisher: AnyPublisher<ConnectivityStatus, Never> { $currentStatus.eraseToAnyPublisher() }
85+
public func startObserving() {}
86+
public func stopObserving() {}
87+
public init() {}
88+
}
89+
90+
public struct EmptyPOSAnalytics: POSAnalyticsProviding {
91+
public func track(event: WooAnalyticsEvent) {}
92+
public func track(_ stat: WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType] = [:]) {}
93+
public func track(_ stat: WooAnalyticsStat) {}
94+
public func track(_ stat: WooFoundationCore.WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType], error: any Error) {}
95+
public init() {}
96+
}

WooCommerce/Classes/POS/Utils/PreviewHelpers.swift

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import Combine
2626
import struct Yosemite.PaymentIntent
2727
import protocol Yosemite.Action
2828
import struct Yosemite.Site
29+
import PointOfSale
2930

3031
// MARK: - PreviewProvider helpers
3132
//
@@ -224,7 +225,7 @@ struct POSPreviewHelpers {
224225
) -> PointOfSaleAggregateModel {
225226
return PointOfSaleAggregateModel(
226227
entryPointController: POSEntryPointController(eligibilityChecker: LegacyPOSTabEligibilityChecker(siteID: 0),
227-
featureFlagService: POSPreviewFeatureFlags()),
228+
featureFlagService: EmptyPOSFeatureFlags()),
228229
itemsController: itemsController,
229230
purchasableItemsSearchController: purchasableItemsSearchController,
230231
couponsController: couponsController,
@@ -293,26 +294,10 @@ final class POSPreviewAnalytics: POSAnalyticsProviding {
293294
}
294295

295296
final class POSPreviewServices: POSDependencyProviding {
296-
var analytics: POSAnalyticsProviding = POSPreviewAnalytics()
297-
var currency: CurrencySettings = CurrencySettings()
298-
var featureFlags: POSFeatureFlagProviding = POSPreviewFeatureFlags()
299-
var session: POSSessionManagerProviding = POSPreviewSessionManager()
300-
var connectivity: ConnectivityObserver = POSPreviewConnectivity()
297+
var analytics: POSAnalyticsProviding = EmptyPOSAnalytics()
298+
var currency: POSCurrencySettingsProviding = EmptyPOSCurrencySettings()
299+
var featureFlags: POSFeatureFlagProviding = EmptyPOSFeatureFlags()
300+
var session: POSSessionManagerProviding = EmptyPOSSessionManager()
301+
var connectivity: POSConnectivityProviding = EmptyPOSConnectivityProvider()
301302
}
302-
303-
private struct POSPreviewSessionManager: POSSessionManagerProviding {
304-
var defaultSite: Site? = nil
305-
}
306-
307-
private struct POSPreviewFeatureFlags: POSFeatureFlagProviding {
308-
func isFeatureFlagEnabled(_ flag: FeatureFlag) -> Bool { false }
309-
}
310-
311-
private class POSPreviewConnectivity: ConnectivityObserver {
312-
@Published private(set) var currentStatus: ConnectivityStatus = .reachable(type: .ethernetOrWiFi)
313-
var statusPublisher: AnyPublisher<ConnectivityStatus, Never> { $currentStatus.eraseToAnyPublisher() }
314-
func startObserving() {}
315-
func stopObserving() {}
316-
}
317-
318303
#endif

0 commit comments

Comments
 (0)