chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import CodexBarCore
|
||||
import Foundation
|
||||
|
||||
struct ProviderToggleStore {
|
||||
private let userDefaults: UserDefaults
|
||||
private let key = "providerToggles"
|
||||
|
||||
init(userDefaults: UserDefaults = .standard) {
|
||||
self.userDefaults = userDefaults
|
||||
}
|
||||
|
||||
func isEnabled(metadata: ProviderMetadata) -> Bool {
|
||||
self.load()[metadata.cliName] ?? metadata.defaultEnabled
|
||||
}
|
||||
|
||||
func setEnabled(_ enabled: Bool, metadata: ProviderMetadata) {
|
||||
var toggles = self.load()
|
||||
toggles[metadata.cliName] = enabled
|
||||
self.userDefaults.set(toggles, forKey: self.key)
|
||||
}
|
||||
|
||||
private func load() -> [String: Bool] {
|
||||
(self.userDefaults.dictionary(forKey: self.key) as? [String: Bool]) ?? [:]
|
||||
}
|
||||
|
||||
func purgeLegacyKeys() {
|
||||
self.userDefaults.removeObject(forKey: "showCodexUsage")
|
||||
self.userDefaults.removeObject(forKey: "showClaudeUsage")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user