@@ -6,42 +6,22 @@ final class BetaFeaturesConfigurationViewModel: ObservableObject {
66 @Published private( set) var availableFeatures : [ BetaFeature ] = [ ]
77 private let appSettings : GeneralAppSettingsStorage
88 private let featureFlagService : FeatureFlagService
9- private let posEligibilityChecker : POSEligibilityCheckerProtocol
109
1110 init ( appSettings: GeneralAppSettingsStorage = ServiceLocator . generalAppSettings,
12- featureFlagService: FeatureFlagService = ServiceLocator . featureFlagService,
13- posEligibilityChecker: POSEligibilityCheckerProtocol = POSEligibilityChecker (
14- siteSettings: ServiceLocator . selectedSiteSettings,
15- currencySettings: ServiceLocator . currencySettings,
16- featureFlagService: ServiceLocator . featureFlagService
17- ) ) {
11+ featureFlagService: FeatureFlagService = ServiceLocator . featureFlagService) {
1812 self . appSettings = appSettings
1913 self . featureFlagService = featureFlagService
20- self . posEligibilityChecker = posEligibilityChecker
21- observePOSEligibilityForAvailableFeatures ( )
14+ availableFeatures = BetaFeature . allCases. filter { betaFeature in
15+ switch betaFeature {
16+ case . viewAddOns:
17+ return true
18+ case . inAppPurchases:
19+ return featureFlagService. isFeatureFlagEnabled ( . inAppPurchasesDebugMenu)
20+ }
21+ }
2222 }
2323
2424 func isOn( feature: BetaFeature ) -> Binding < Bool > {
2525 appSettings. betaFeatureEnabledBinding ( feature)
2626 }
2727}
28-
29- private extension BetaFeaturesConfigurationViewModel {
30- func observePOSEligibilityForAvailableFeatures( ) {
31- posEligibilityChecker. isEligible
32- . map { [ weak self] isEligibleForPOS in
33- guard let self else {
34- return [ ]
35- }
36- return BetaFeature . allCases. filter { betaFeature in
37- switch betaFeature {
38- case . viewAddOns:
39- return true
40- case . inAppPurchases:
41- return self . featureFlagService. isFeatureFlagEnabled ( . inAppPurchasesDebugMenu)
42- }
43- }
44- }
45- . assign ( to: & $availableFeatures)
46- }
47- }
0 commit comments