secant-ios-wallet/modules/Sources/Dependencies/WalletConfigProvider/WalletConfigProviderLiveKey...

30 lines
894 B
Swift

//
// WalletConfigProviderLiveKey.swift
// secant
//
// Created by Michal Fousek on 23.02.2023.
//
import ComposableArchitecture
import Foundation
extension WalletConfigProviderClient: DependencyKey {
public static let liveValue = WalletConfigProviderClient.live()
public static var defaultWalletConfigProvider: WalletConfigProvider {
WalletConfigProvider(
configSourceProvider: UserDefaultsWalletConfigProvider(),
cache: UserDefaultsWalletConfigProviderCache()
)
}
public static func live(walletConfigProvider: WalletConfigProvider = WalletConfigProviderClient.defaultWalletConfigProvider) -> Self {
Self(
load: { walletConfigProvider.load() },
update: { flag, isEnabled in
return walletConfigProvider.update(featureFlag: flag, isEnabled: isEnabled)
}
)
}
}