@@ -5,13 +5,12 @@ import android.util.Log
55import androidx.compose.ui.graphics.Color
66import androidx.compose.ui.unit.dp
77import com.clerk.api.Clerk
8+ import com.clerk.api.network.model.client.Client
89import com.clerk.api.network.model.error.firstMessage
910import com.clerk.api.network.serialization.ClerkResult
10- import com.clerk.api.session.Session
1111import com.clerk.api.ui.ClerkColors
1212import com.clerk.api.ui.ClerkDesign
1313import com.clerk.api.ui.ClerkTheme
14- import com.clerk.api.user.User
1514import com.facebook.react.bridge.Arguments
1615import com.facebook.react.bridge.Promise
1716import com.facebook.react.bridge.ReactApplicationContext
@@ -22,7 +21,6 @@ import kotlinx.coroutines.CoroutineScope
2221import kotlinx.coroutines.Dispatchers
2322import kotlinx.coroutines.Job
2423import kotlinx.coroutines.TimeoutCancellationException
25- import kotlinx.coroutines.flow.combine
2624import kotlinx.coroutines.flow.first
2725import kotlinx.coroutines.launch
2826import kotlinx.coroutines.withTimeout
@@ -41,9 +39,7 @@ class ClerkExpoModule(reactContext: ReactApplicationContext) :
4139
4240 private val coroutineScope = CoroutineScope (Dispatchers .Main )
4341 private var clientStateObserverJob: Job ? = null
44- private var lastObservedSessions: List <Session > = emptyList()
45- private var lastObservedSession: Session ? = null
46- private var lastObservedUser: User ? = null
42+ private var lastObservedClient: Client ? = null
4743 private var configuredPublishableKey: String? = null
4844
4945 companion object {
@@ -71,21 +67,15 @@ class ClerkExpoModule(reactContext: ReactApplicationContext) :
7167 return
7268 }
7369
74- lastObservedSessions = Clerk .sessionsFlow.value
75- lastObservedSession = Clerk .session
76- lastObservedUser = Clerk .user
70+ lastObservedClient = Clerk .clientFlow.value
7771
7872 clientStateObserverJob = coroutineScope.launch {
79- combine(Clerk .sessionsFlow, Clerk .sessionFlow, Clerk .userFlow) { sessions, session, user ->
80- Triple (sessions, session, user)
81- }.collect { (sessions, session, user) ->
82- if (sessions == lastObservedSessions && session == lastObservedSession && user == lastObservedUser) {
73+ Clerk .clientFlow.collect { client ->
74+ if (client == lastObservedClient) {
8375 return @collect
8476 }
8577
86- lastObservedSessions = sessions
87- lastObservedSession = session
88- lastObservedUser = user
78+ lastObservedClient = client
8979 emitRefreshClient()
9080 }
9181 }
@@ -311,13 +301,7 @@ class ClerkExpoModule(reactContext: ReactApplicationContext) :
311301
312302 coroutineScope.launch {
313303 try {
314- val deviceToken = Clerk .getDeviceToken()
315- if (deviceToken.isNullOrBlank()) {
316- promise.resolve(null )
317- return @launch
318- }
319-
320- when (val result = Clerk .updateDeviceToken(deviceToken)) {
304+ when (val result = Clerk .refreshClient()) {
321305 is ClerkResult .Failure -> promise.reject(
322306 " E_REFRESH_CLIENT_FAILED" ,
323307 result.error?.firstMessage() ? : result.throwable?.message ? : " Client refresh failed"
0 commit comments