Repository navigation
fix(expo): fire onDismiss from the close button of an inline AuthView on iOS - #10079
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughOn iOS, Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~8 minutes Merge Risk: ⚪ Minimal · up to The change is intended to let iOS inline auth dismissals reach the host. Available evidence identifies no specific remaining merge blocker. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)
Comment |
🦋 Changeset detectedLatest commit: 96d8308 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
… on iOS A dismissible AuthView that is rendered inline is not presented, so SwiftUI's dismiss had nothing to close and the bridge never heard about the tap. Pass clerk-ios a host dismiss action that emits the dismissed event. The podspec pins the clerk-ios commit that adds the action until a release contains it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
d07fde1 to
108670d
Compare
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/electron
@clerk/electron-passkeys
@clerk/eslint-plugin
@clerk/expo
@clerk/expo-biometrics
@clerk/expo-google-signin
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/hono
@clerk/localizations
@clerk/mosaic
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
1.5.9 contains the host dismiss action, and main already pins it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
API Changes Report
Summary
No API Changes DetectedAll packages have stable APIs with no detected changes. Report generated by Break Check Last ran on |
Description
On iOS, the close button of a dismissible
<AuthView />did nothing when the view was rendered inline, andonDismissnever fired.isDismissibledefaults totrueand the component's own example renders it inline, so the documented usage shipped with a dead X. The same JSX already worked on Android.The fix depends on clerk/clerk-ios#631, which shipped in clerk-ios 1.5.9.
mainalready pins 1.5.9 (#10083), so this PR no longer touches the podspec. An earlier revision of this branch pinned the merge commit while the release was pending.Why the button was dead: clerk-ios closes
AuthViewthrough SwiftUI'sdismiss, and that has nothing to close for a view that is not presented. No UIKit dismissal reaches the bridge either, so there was nothing for@clerk/expoto observe. clerk/clerk-ios#631 adds a host dismiss action for this case, next to the host back action the bridge already uses. The bridge now passes one for a dismissibleAuthView, and it emits the samedismissedevent the bridge sends when the hosted view is detached. Inside a modal, clerk-ios still closes the view itself and the bridge sends the event once.Android needed no change. clerk-android's
AuthViewtakesonDismissdirectly and the bridge already passes it.I checked this with the verify skill from #10053, which is where the spec that caught it lives. Its dismiss test taps the X and waits for the fixture to go back to its home screen, and it passes on iOS and Android with this change. The iOS run was repeated against the 1.5.9 pin. That spec still carries a
known-bugtag on #10053, and removing the tag is a follow-up there. This PR does not depend on it. Thecompletespec, which signs in through the form, was not run.Before, on iOS. The spec taps the X at the end and the view stays:
before-ios.mp4
After, on iOS:
after-ios.mp4
Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code