-
-
Notifications
You must be signed in to change notification settings - Fork 576
feat: add support for [email protected]
#2739
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
## Description Add a newly introduced field `ios.componentProvider` to the `codegen` configuration to create an association map between JS components and their native implementations. See more information here: software-mansion/react-native-svg#2572 ## Changes - added `codegenConfig.ios.componentProvider` field to package.json ### Before ```objc Class<RCTComponentViewProtocol> RCTThirdPartyFabricComponentsProvider(const char *name) { static std::unordered_map<std::string, Class (*)(void)> sFabricComponentsClassMap = { // ... {"RNSFullWindowOverlay", RNSFullWindowOverlayCls}, // 3 {"RNSModalScreen", RNSModalScreenCls}, // 3 {"RNSScreenContainer", RNSScreenContainerCls}, // 3 {"RNSScreenContentWrapper", RNSScreenContentWrapperCls}, // 3 {"RNSScreenFooter", RNSScreenFooterCls}, // 3 {"RNSScreen", RNSScreenCls}, // 3 {"RNSScreenNavigationContainer", RNSScreenNavigationContainerCls}, // 3 {"RNSScreenStackHeaderConfig", RNSScreenStackHeaderConfigCls}, // 3 {"RNSScreenStackHeaderSubview", RNSScreenStackHeaderSubviewCls}, // 3 {"RNSScreenStack", RNSScreenStackCls}, // 3 {"RNSSearchBar", RNSSearchBarCls}, // 3 // ... ``` ### After ```objc @implementation RCTThirdPartyComponentsProvider + (NSDictionary<NSString *, Class<RCTComponentViewProtocol>> *)thirdPartyFabricComponents { return @{ @"RNSFullWindowOverlay": NSClassFromString(@"RNSFullWindowOverlay"), // react-native-screens @"RNSModalScreen": NSClassFromString(@"RNSModalScreen"), // react-native-screens @"RNSScreenContainer": NSClassFromString(@"RNSScreenContainer"), // react-native-screens @"RNSScreenContentWrapper": NSClassFromString(@"RNSScreenContentWrapper"), // react-native-screens @"RNSScreenFooter": NSClassFromString(@"RNSScreenFooter"), // react-native-screens @"RNSScreen": NSClassFromString(@"RNSScreen"), // react-native-screens @"RNSScreenNavigationContainer": NSClassFromString(@"RNSScreenNavigationContainer"), // react-native-screens @"RNSScreenStackHeaderConfig": NSClassFromString(@"RNSScreenStackHeaderConfig"), // react-native-screens @"RNSScreenStackHeaderSubview": NSClassFromString(@"RNSScreenStackHeaderSubview"), // react-native-screens @"RNSScreenStack": NSClassFromString(@"RNSScreenStack"), // react-native-screens @"RNSSearchBar": NSClassFromString(@"RNSSearchBar"), // react-native-screens }; } ``` ## Test code and steps to reproduce Run `pod install` in React Native 0.77 app and see `RCTThirdPartyFabricComponentsProvider` to check the content
## Description #2567 introduced `ios.componentProvider` field to package definition - and that's fine, but we're pointing to wrong names there. ## Changes Updated the names to existing symbol names. ## Test code and steps to reproduce This caused runtime errors when running the app on 0.77. I need this commit for the #2581 (0.77 support) ## Checklist - [ ] Included code example that can be used to test this change - [ ] Updated TS types - [ ] Updated documentation: <!-- For adding new props to native-stack --> - [ ] https://github.com/software-mansion/react-native-screens/blob/main/guides/GUIDE_FOR_LIBRARY_AUTHORS.md - [ ] https://github.com/software-mansion/react-native-screens/blob/main/native-stack/README.md - [ ] https://github.com/software-mansion/react-native-screens/blob/main/src/types.tsx - [ ] https://github.com/software-mansion/react-native-screens/blob/main/src/native-stack/types.tsx - [ ] Ensured that CI passes
…#2497) Possible build issues. - **Add default for resizemode conversion** - **Remove unimplemented and unused method** CI - [ ] Ensured that CI passes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I've done initial review. The chanves look very good. I'll now build the projects & see why our sync task fails.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified that these configurations work
- ✅ Android/Fabric
- ✅ Android/Paper
- ✅ iOS/Fabric/static-frameworks
- ✅ iOS/Paper/static-frameworks
Please apply my suggestions ☝🏻 and we're ready to merge. Great job!
CI fails for unrelated reasons and needs to be fixes separately. |
Co-authored-by: Kacper Kafara <[email protected]>
Description
Adding support for
[email protected]
.RN version of the library still left at
0.72.4
.Changes
ios.componentProvider
ios.componentProvider
to package.json #2567ios.componentProvider
#2583react-native-gesture-handler
to2.22.0
react-native-reanimated
to3.16.7
react-native-safe-area-context
to5.1.0
-Werror -Wreturn-path
#2497Test code and steps to reproduce
CI
Checklist