Draft
Conversation
5f7b46c to
5f41a62
Compare
Fixes an issue where styles applied to RevenueCatUI.Paywall component were not being applied immediately. The problem was that the paywall's native view setup was deferred until layoutSubviews, causing a timing issue with React Native's style application. This solution preserves the original view hierarchy timing while forcing immediate layout updates when React Native applies style changes, with robust protection against infinite layout loops. Changes: - Override reactSetFrame, setBounds, and setFrame methods - Call setNeedsLayout + layoutIfNeeded to force immediate layout updates - Add isInLayoutUpdate flag to prevent infinite layout loops - Use dispatch_async to break synchronous recursion chains - Only trigger layout for actual frame/bounds changes - Preserve original view controller hierarchy setup timing This approach is safer than restructuring the view hierarchy timing as it: - Maintains SwiftUI environment context - Preserves safe area and layout guide behavior - Works with React Native's layout system - Protected against infinite layout loops Fixes #1366 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
5f41a62 to
8097087
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1366
Summary
RevenueCatUI.Paywallcomponent were not being applied immediatelylayoutSubviews, which happens after React Native applies styles to the wrapper viewChanges
setupPaywallViewmethodlayoutSubviewsTest plan
paddingTop: 32are applied immediately to PaywallView without needing loading states or timeouts