native macOS codings agent orchestrator prowl.onev.cat
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import ComposableArchitectureimport PostHogimport SwiftUI
struct AnalyticsClient: Sendable { var capture: @Sendable (_ event: String, _ properties: [String: Any]?) -> Void var identify: @Sendable (_ distinctId: String) -> Void var reset: @Sendable () -> Void}
extension AnalyticsClient: DependencyKey { static let liveValue = AnalyticsClient( capture: { event, properties in #if !DEBUG @Shared(.settingsFile) var settingsFile guard settingsFile.global.analyticsEnabled else { return } PostHogSDK.shared.capture(event, properties: properties) #endif }, identify: { distinctId in #if !DEBUG @Shared(.settingsFile) var settingsFile guard settingsFile.global.analyticsEnabled else { return } PostHogSDK.shared.identify(distinctId) #endif }, reset: { #if !DEBUG PostHogSDK.shared.reset() #endif InstallIdentifier.reset() } )
static let testValue = AnalyticsClient( capture: { _, _ in }, identify: { _ in }, reset: {} )}
extension DependencyValues { var analyticsClient: AnalyticsClient { get { self[AnalyticsClient.self] } set { self[AnalyticsClient.self] = newValue } }}
private struct AnalyticsClientKey: EnvironmentKey { static let defaultValue = AnalyticsClient.liveValue}
extension EnvironmentValues { var analyticsClient: AnalyticsClient { get { self[AnalyticsClientKey.self] } set { self[AnalyticsClientKey.self] = newValue } }}