Skip to content

fix(expo): fire AuthView onDismiss when isDismissible is false on iOS - #9501

Draft
wobsoriano wants to merge 2 commits into
mainfrom
rob/mobile-625-expo-ondismiss-never-fires-on-ios-when-isdismissible-is
Draft

fix(expo): fire AuthView onDismiss when isDismissible is false on iOS#9501
wobsoriano wants to merge 2 commits into
mainfrom
rob/mobile-625-expo-ondismiss-never-fires-on-ios-when-isdismissible-is

Conversation

@wobsoriano

Copy link
Copy Markdown
Member

Description

The iOS bridge only reported a dismissal when the view was dismissible, so a non-dismissible AuthView never told JS the auth flow had finished and an app-owned modal stayed open after sign-in. Android already fires onAuthComplete regardless.

Wires the new clerkAuthCompletionAction SPI from clerk-ios into the hosted auth view, ungated by dismissibility. The detach path keeps its dismissible check, since a non-dismissible view never self-dismisses and a detach there is the host tearing the view down.

Part of MOBILE-625

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

The iOS bridge only reported a dismissal when the view was dismissible,
so a non-dismissible AuthView never told JS the auth flow had finished
and an app-owned modal stayed open after sign-in. Android already fires
onAuthComplete regardless.

Wires the new clerkAuthCompletionAction SPI from clerk-ios into the
hosted auth view, ungated by dismissibility. The detach path keeps its
dismissible check, since a non-dismissible view never self-dismisses and
a detach there is the host tearing the view down.
@changeset-bot

changeset-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: dbc2072

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@clerk/expo Patch

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

@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview Aug 19, 2026 6:23am
swingset Ready Ready Preview Aug 19, 2026 6:23am

Request Review

@pkg-pr-new

pkg-pr-new Bot commented Aug 19, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@9501

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@9501

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@9501

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@9501

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@9501

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@9501

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@9501

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@9501

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@9501

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@9501

@clerk/express

npm i https://pkg.pr.new/@clerk/express@9501

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@9501

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@9501

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@9501

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@9501

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@9501

@clerk/react

npm i https://pkg.pr.new/@clerk/react@9501

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@9501

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@9501

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@9501

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@9501

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@9501

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@9501

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@9501

commit: dbc2072

Constructing ClerkAuthCompletionAction, which is @mainactor, from a
nonisolated context failed to compile. The neighbouring
makeUserProfileViewController was already annotated, and the caller in
ClerkNativeViewHost is main-actor isolated via UIView, so this brings the
two factory methods back in line.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant