From 9f8fef65dbf0f2c5b2b32cd9b30cae2496fd8f1e Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Mon, 6 Jun 2022 11:47:22 +0200
Subject: [PATCH] Add client getter to SessionEnvironment

---
 Example/example-app/Package.swift                   |  4 ++++
 Example/example-app/Sources/AppFeature/App.swift    |  4 +++-
 .../Sources/SessionFeature/SessionFeature.swift     | 13 +++++++++++--
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/Example/example-app/Package.swift b/Example/example-app/Package.swift
index 3b02bf97..6277f619 100644
--- a/Example/example-app/Package.swift
+++ b/Example/example-app/Package.swift
@@ -139,6 +139,10 @@ let package = Package(
           name: "ComposableArchitecture",
           package: "swift-composable-architecture"
         ),
+        .product(
+          name: "ElixxirDAppsSDK",
+          package: "elixxir-dapps-sdk-swift"
+        ),
       ],
       swiftSettings: swiftSettings
     ),
diff --git a/Example/example-app/Sources/AppFeature/App.swift b/Example/example-app/Sources/AppFeature/App.swift
index 1353882a..1af9cbbe 100644
--- a/Example/example-app/Sources/AppFeature/App.swift
+++ b/Example/example-app/Sources/AppFeature/App.swift
@@ -40,7 +40,9 @@ extension AppEnvironment {
         mainScheduler: mainScheduler,
         error: ErrorEnvironment()
       ),
-      session: SessionEnvironment()
+      session: SessionEnvironment(
+        getClient: { clientSubject.value }
+      )
     )
   }
 }
diff --git a/Example/example-app/Sources/SessionFeature/SessionFeature.swift b/Example/example-app/Sources/SessionFeature/SessionFeature.swift
index 3b7dd16f..c98f2d4d 100644
--- a/Example/example-app/Sources/SessionFeature/SessionFeature.swift
+++ b/Example/example-app/Sources/SessionFeature/SessionFeature.swift
@@ -1,4 +1,5 @@
 import ComposableArchitecture
+import ElixxirDAppsSDK
 
 public struct SessionState: Equatable {
   public init() {}
@@ -9,7 +10,13 @@ public enum SessionAction: Equatable {
 }
 
 public struct SessionEnvironment {
-  public init() {}
+  public init(
+    getClient: @escaping () -> Client?
+  ) {
+    self.getClient = getClient
+  }
+
+  public var getClient: () -> Client?
 }
 
 public let sessionReducer = Reducer<SessionState, SessionAction, SessionEnvironment>
@@ -22,6 +29,8 @@ public let sessionReducer = Reducer<SessionState, SessionAction, SessionEnvironm
 
 #if DEBUG
 extension SessionEnvironment {
-  public static let failing = SessionEnvironment()
+  public static let failing = SessionEnvironment(
+    getClient: { .failing }
+  )
 }
 #endif
-- 
GitLab