Skip to content

Commit 775f795

Browse files
committed
Bump Expo native SDKs and align native component props
1 parent ba15971 commit 775f795

6 files changed

Lines changed: 17 additions & 13 deletions

File tree

.changeset/bump-expo-native-sdks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"@clerk/expo": patch
33
---
44

5-
Bump the native SDKs pulled into Expo: `clerk-ios` to `1.1.5` and `clerk-android-api`/`clerk-android-ui` to `1.0.26`.
5+
Bump the native SDKs pulled into Expo: `clerk-ios` to `1.2.0` and `clerk-android-api`/`clerk-android-ui` to `1.0.28`. Android native components now pass through the existing `<AuthView mode>`, `<AuthView isDismissible>`, and `<UserProfileView isDismissible>` props to the underlying native SDK.

packages/expo/android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ ext {
1717
credentialsVersion = "1.3.0"
1818
googleIdVersion = "1.1.1"
1919
kotlinxCoroutinesVersion = "1.7.3"
20-
clerkAndroidApiVersion = "1.0.26"
21-
clerkAndroidUiVersion = "1.0.26"
20+
clerkAndroidApiVersion = "1.0.28"
21+
clerkAndroidUiVersion = "1.0.28"
2222
composeVersion = "1.7.0"
2323
activityComposeVersion = "1.9.0"
2424
lifecycleVersion = "2.8.0"

packages/expo/android/src/main/java/expo/modules/clerk/ClerkAuthViewModule.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.ui.Modifier
88
import androidx.lifecycle.ViewModelStore
99
import androidx.lifecycle.ViewModelStoreOwner
1010
import com.clerk.api.Clerk
11+
import com.clerk.ui.auth.AuthMode
1112
import com.clerk.ui.auth.AuthView
1213
import expo.modules.kotlin.AppContext
1314
import expo.modules.kotlin.modules.Module
@@ -55,12 +56,13 @@ class ClerkAuthNativeView(context: Context, appContext: AppContext) : ClerkCompo
5556

5657
@Composable
5758
override fun Content() {
58-
debugLog(TAG, "setupView - isDismissible: $isDismissible, activity: $activity")
59+
debugLog(TAG, "setupView - mode: $mode, isDismissible: $isDismissible, activity: $activity")
5960

6061
AuthView(
6162
modifier = Modifier.fillMaxSize(),
6263
clerkTheme = Clerk.customTheme,
63-
isDismissable = isDismissible,
64+
mode = authMode(mode),
65+
isDismissible = isDismissible,
6466
onDismiss = ::sendDismissEvent,
6567
onAuthComplete = {
6668
sendDismissEvent()
@@ -77,6 +79,12 @@ class ClerkAuthNativeView(context: Context, appContext: AppContext) : ClerkCompo
7779
dismissalEventSent = true
7880
sendEvent("dismissed")
7981
}
82+
83+
private fun authMode(mode: String?): AuthMode = when (mode) {
84+
"signIn" -> AuthMode.SignIn
85+
"signUp" -> AuthMode.SignUp
86+
else -> AuthMode.SignInOrUp
87+
}
8088
}
8189

8290
class ClerkAuthViewModule : Module() {
@@ -87,8 +95,6 @@ class ClerkAuthViewModule : Module() {
8795
Events("onAuthEvent")
8896

8997
Prop("mode") { view: ClerkAuthNativeView, mode: String? ->
90-
// clerk-android AuthView does not currently expose a public mode parameter.
91-
// Keep this prop as an intentional no-op for cross-platform API parity.
9298
view.mode = mode
9399
}
94100

packages/expo/android/src/main/java/expo/modules/clerk/ClerkUserProfileViewModule.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class ClerkUserProfileNativeView(context: Context, appContext: AppContext) : Cle
4444

4545
UserProfileView(
4646
clerkTheme = Clerk.customTheme,
47+
isDismissible = isDismissible,
4748
onDismiss = {
4849
debugLog(TAG, "Profile dismissed")
4950
sendEvent("dismissed")
@@ -64,9 +65,6 @@ class ClerkUserProfileViewModule : Module() {
6465
Events("onProfileEvent")
6566

6667
Prop("isDismissible") { view: ClerkUserProfileNativeView, isDismissible: Boolean ->
67-
// clerk-android does not expose the iOS-parity isDismissible API yet.
68-
// Accept the prop for cross-platform RN API shape, and pass it through
69-
// once the native SDK owns this behavior.
7068
view.isDismissible = isDismissible
7169
}
7270

packages/expo/app.plugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const path = require('path');
2020
const fs = require('fs');
2121

2222
const CLERK_IOS_REPO = 'https://github.com/clerk/clerk-ios.git';
23-
const CLERK_IOS_VERSION = '1.1.5';
23+
const CLERK_IOS_VERSION = '1.2.0';
2424

2525
const CLERK_MIN_IOS_VERSION = '17.0';
2626

packages/expo/ios/ClerkNativeBridge.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ struct ClerkInlineAuthWrapperView: View {
500500
@Environment(\.colorScheme) private var colorScheme
501501

502502
private var themedAuthView: some View {
503-
let view = AuthView(mode: mode, isDismissable: dismissible)
503+
let view = AuthView(mode: mode, isDismissible: dismissible)
504504
.environment(Clerk.shared)
505505
let theme = colorScheme == .dark ? (darkTheme ?? lightTheme) : lightTheme
506506
return Group {
@@ -552,7 +552,7 @@ struct ClerkInlineProfileWrapperView: View {
552552
@Environment(\.colorScheme) private var colorScheme
553553

554554
var body: some View {
555-
let view = UserProfileView(isDismissable: dismissible)
555+
let view = UserProfileView(isDismissible: dismissible)
556556
.environment(Clerk.shared)
557557
let theme = colorScheme == .dark ? (darkTheme ?? lightTheme) : lightTheme
558558
let themedView = Group {

0 commit comments

Comments
 (0)