react-native-purchases icon indicating copy to clipboard operation
react-native-purchases copied to clipboard

PaywallFooterContainerView not working with New Architecture

Open marcibk opened this issue 11 months ago β€’ 24 comments

Describe the bug Hello there :)! I tried to implement PaywallFooterContainerView with ReactNative as described in the docs. Unfortunately the footer is cut off at the bottom, not clickable and not movable at all. Anyone figured out how this works? I also saw some open discussions about the footer not being supported for react native since start at all? Thanks :)

IMG_576777C27B7D-1

    <View style={{ flex: 1 }}>
      <RevenueCatUI.PaywallFooterContainerView>
            <Text>
              Your Custom Paywall Design
          </Text>
        </RevenueCatUI.PaywallFooterContainerView>
    </View>

also tried it without a parent view.

marcibk avatar Jan 12 '25 09:01 marcibk

πŸ‘€ We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

RCGitBot avatar Jan 12 '25 09:01 RCGitBot

Hi @marcibk! Is the snippet you shared your full implementation so far, or do you have other parent components? If the latter, can you share a larger snippet so we can determine if anything is conflicting higher up in the tree? Can you also share the version of purchases and purchases-ui SDKs you're using as well as the iOS version of your test device? Thanks!

Jethro87 avatar Jan 15 '25 16:01 Jethro87

Running into the same issue

garrettwesley avatar Jan 20 '25 21:01 garrettwesley

Also running into this issue.

Noahkoole avatar Jan 21 '25 18:01 Noahkoole

I have the same issue, to clarify:

  • It's only the case on iOS, android works fine
  • There is a constant offset of around 170px (it's the same offset on the 3 different devices I tried it on)
  • It's easy to reproduce, just copy-past the code in your react native documentation into a screen (I use react-navigation, either displayed as a fullScreenModal or a standard card)

~~I managed to fixed it this way, by adding a paddingBottom~~

  <RevenueCatUI.PaywallFooterContainerView
      options={{
        offering: currentOffering,
      }}
      onDismiss={() => {
        // Dismiss the paywall, i.e. remove the view, navigate to another screen, etc.
      }}
      style={{ flex: 1, paddingBottom: Platform.OS === 'android' ? 0 : 170 }}
    >
      <PaywallContent title={null} description={null} />
    </RevenueCatUI.PaywallFooterContainerView>
  );

@vegaro I hope it could help you to solve this kind of critical issue (for now the Footer component is not usable without this workaround), please tell me what I could do to help

EDIT: My bad, this fixes just the UI but buttons are not pressable...

@garrettwesley @Noahkoole did you manage to make the Footer work?

christophemenager avatar Jan 22 '25 11:01 christophemenager

I tried downgrading to :

  • 7.18.1
  • 8.1.0

Both are broken

I tried another template :

  • 2 Sphynx
  • 5 Bengal

Both are broken

I suspect this might be linked to my react native config, but I have no time to test to roll back to previous versions. I am currently using:

  • react-native 0.76.6
  • expo 52.0.27
  • latest react-navigation dependencies : 7.2.0
  • latest react-native-screens dependency : 4.5.0
  • ios version 18.2(both SE and Iphone 16 and 16 Pro)

christophemenager avatar Jan 22 '25 16:01 christophemenager

I tried adding a paddingBottom as well and that works as a quick hack, but none of the buttons are pressable making the Footer completely unusable

garrettwesley avatar Jan 23 '25 05:01 garrettwesley

Just for the sake of centralizing information about this issue, the Support Team asked me if this problem could be reproduced on another iOS version, the answer is yes.

I tried on ios 18.1 and had the exact same issue (padding + buttons not clickable)

Image

christophemenager avatar Jan 23 '25 10:01 christophemenager

I think I just found the source of the problem: the new architecture:

  • With the new arch enabled on RN 0.76.6, I reproduce the problem
  • Without the new arch enabled on RN 0.76.6 I don't reproduce the problem

@garrettwesley @Jethro87 @marcibk can you tell us if you have the new arch enabled in your project?

christophemenager avatar Jan 24 '25 09:01 christophemenager

@christophemenager Thanks for looking into this and diagnosing! We will start looking into fixing this on our side today and will try to get a fix out ASAP

joshdholtz avatar Jan 24 '25 12:01 joshdholtz

Thank you @joshdholtz!

And yes @christophemenager I am running the new arch

garrettwesley avatar Jan 24 '25 17:01 garrettwesley

@christophemenager @garrettwesley So we did find why this is happening and its because the reactSetFrame is no longer being used (which we used to properly place the footer position).

There is a Reddit thread (with no answers) of somebody asking how support this. We will keep monitoring that thread for answers while also trying to explore solutions of our own.

I was hoping this was going to be a quick fix from old API to new API but don't have a clear path ATM πŸ€·β€β™‚

So in the mean time... RCT_NEW_ARCH_ENABLED=0 pod install (or an equivalent) is the current workout 😬

joshdholtz avatar Jan 24 '25 17:01 joshdholtz

@joshdholtz thanks for the investigation and the update πŸ™

It's a shame that the react-native team didn't document the migration from the old renderer (using reactSetFrame) to the new one.

My understanding is:

  • There is no equivalent of reactSetFrame as the new architecture introduced a new renderer called Fabric which changes the mindset on how to render a native component in RN.
  • This renderer provides a more "direct" connection between JS and native.
  • You may have read it already, but I found an example on how to display a centered text in iOS with the new Fabric renderer

I hope those hints could help you, I am not an iOS engineer so maybe you already knew all of that!

Hope you will find a solution soon as the new architecture is becoming more and more popular as the RN team is pushing for adoption :)

christophemenager avatar Jan 27 '25 09:01 christophemenager

@christophemenager Oh, we did some more investigation today and it turns out that is not the issue and I was just having Friday brain moment 🫠

We are still looking into and will still reach out to some React Native maintainers that we know! Will report back as soon as we can πŸ’ͺ

joshdholtz avatar Jan 27 '25 14:01 joshdholtz

Hi @joshdholtz πŸ‘‹ Any updates on this issue?

I have seen Paywalls v2 are now released in beta for react-native and seems to support the new architecture, congrats for the launch! πŸš€

However, as Paywalls v2 do not support Footer Paywalls, this does not solve this issue 😭

christophemenager avatar Feb 17 '25 16:02 christophemenager

Any update on this?

zainzafar avatar Apr 29 '25 22:04 zainzafar

@joshdholtz this issue is still a blocker for us as in our use case: we use a custom paywall with animations that is not supported in Paywalls v2 so the Footer only is needed for us. Do you have any plans to support the Footer on the new architecture? Or is it a low prio now that you released Paywalls v2?

christophemenager avatar May 06 '25 07:05 christophemenager

@joshdholtz this issue is still a blocker for us as in our use case: we use a custom paywall with animations that is not supported in Paywalls v2 so the Footer only is needed for us. Do you have any plans to support the Footer on the new architecture? Or is it a low prio now that you released Paywalls v2?

Yes, I am at the same situation either, your Paywalls v2 offering does not solve all my paywall needs, my custom implementation has much detailed customizations but I am stuck with v2 and patiently waiting new footer paywall view too.

ilkerb avatar May 07 '25 05:05 ilkerb

pls 😭

erenkulaksiz avatar May 29 '25 19:05 erenkulaksiz

Hey everyone, thanks so much for your patience!

While reviewing our internal ticketing system, we discovered this issue had been unintentionally deprioritized due to a system error. We've resolved that problem to prevent it from happening again.

Could anyone confirm whether this issue persists in the latest SDK versions? If so, please let us know which versions you’re seeing it in.

Thanks for helping us track this down!

GuilhermeMota93 avatar Oct 14 '25 15:10 GuilhermeMota93

@GuilhermeMota93 I can confirm that the issue is still occurring after updating all SDK to the latest version.

  • react-native-purchases: 9.5.4
  • react-native-purchases-ui: 9.5.4
  • react-native: 0.79.4
  • expo: ~53.0.13
Image

SteeBono avatar Oct 15 '25 16:10 SteeBono

I also confirm this is still an issue

christophemenager avatar Oct 15 '25 17:10 christophemenager

@SteeBono Hey! Are you using a PaywallFooterContainerView? Or a full screen paywall?

@GuilhermeMota93 I can confirm that the issue is still occurring after updating all SDK to the latest version.

  • react-native-purchases: 9.5.4
  • react-native-purchases-ui: 9.5.4
  • react-native: 0.79.4
  • expo: ~53.0.13

joshdholtz avatar Oct 16 '25 16:10 joshdholtz

@SteeBono Hey! Are you using a PaywallFooterContainerView? Or a full screen paywall?

@GuilhermeMota93 I can confirm that the issue is still occurring after updating all SDK to the latest version.

  • react-native-purchases: 9.5.4
  • react-native-purchases-ui: 9.5.4
  • react-native: 0.79.4
  • expo: ~53.0.13

I tried using PaywallFooterContainerView, but it’s deprecated in favor of OriginalTemplatePaywallFooterContainerView, if I remember correctly. So I tested both components.

SteeBono avatar Oct 16 '25 20:10 SteeBono