Skip to main content
Question

Restore button does not dismiss paywall

  • January 16, 2026
  • 3 replies
  • 47 views

Forum|alt.badge.img+3

Hello, I’m using react native (react-native-purchases and react-native-purchases-ui both at 9.7.0) for my iOS-only app. I’m displaying a paywall to my users via 

const result = await RevenueCatUI.presentPaywall({ offering });

The paywall renders correctly. I have a restore button that restore the purchase correctly, but it does not dismiss the paywall. The user is often left confused as to whether the restore worked or not.

 

How can I get the paywall to dismiss automatically after a restore? There’s no `dismiss()` method on `RevenueCatUI` either, and I would like to not use `<RevenueCatUI.Paywall />` component as that has several scroll issues when used in a bottom sheet to mimic similar behavior of `RevenueCatUI.presentPaywall()`

3 replies

  • New Member
  • January 19, 2026

andrew-moore-0bb907 You should use presentPaywallIfNeeded instead of presentPaywall . Checkout this RevenueCat’s discussion


Forum|alt.badge.img+3

Thanks Samar! That helped, but then when would you ever use `presentPayall`? It feels useless for any scenario where you want a restore button (required for iOS). The `presentPayall` promise resolves with RESTORED, but when I validate that it’s a valid restore, I can’t dismiss it… 

Unless I’m missing something, it would make sense to either

  • Remove `presentPaywall`
  • or add a `RevenueCatUI.dismiss()` button so we can validate restore ourselves and then dismiss the paywall manually

 

 


  • New Member
  • January 19, 2026

@andrew-moore-0bb907 I agree, I tried listening for changes in CustomerInfo object using addCustomerInfoUpdateListener  and checking if there’s any active entitlement, then pop the current screen i.e the paywall. However that did not work in my case.

I hope someone from RevenueCat’s Team to look into it.