From 7b8d0b879dabc0a7b2beeae1fd5b24e208b8e07f Mon Sep 17 00:00:00 2001 From: Krzysztof Moch Date: Mon, 21 Jul 2025 11:54:37 +0200 Subject: [PATCH] fix: codegen config (#4616) --- example/ios/Podfile.lock | 4 +-- .../react-native-video/android/build.gradle | 2 +- .../com/video/react/VideoViewViewManager.kt | 10 +++---- ....java => RNCVideoViewManagerDelegate.java} | 4 +-- ...java => RNCVideoViewManagerInterface.java} | 2 +- ...ideoView.h => RCTVideoViewComponentView.h} | 2 +- ...eoView.mm => RCTVideoViewComponentView.mm} | 28 +++++++++---------- ...wManager.mm => RCTVideoViewViewManager.mm} | 6 ++-- ...ideoView.h => RCTVideoViewComponentView.h} | 2 +- ...eoView.mm => RCTVideoViewComponentView.mm} | 6 ++-- .../ios/view/paper/RCTVideoViewViewManager.m | 18 ++++++++++++ .../ios/view/paper/VideoViewManager.m | 18 ------------ packages/react-native-video/package.json | 9 ++++-- .../react-native-video/react-native.config.js | 3 +- .../spec/fabric/VideoViewNativeComponent.ts | 2 +- 15 files changed, 61 insertions(+), 55 deletions(-) rename packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/{VideoViewManagerDelegate.java => RNCVideoViewManagerDelegate.java} (78%) rename packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/{VideoViewManagerInterface.java => RNCVideoViewManagerInterface.java} (86%) rename packages/react-native-video/ios/view/fabric/{VideoView.h => RCTVideoViewComponentView.h} (66%) rename packages/react-native-video/ios/view/fabric/{VideoView.mm => RCTVideoViewComponentView.mm} (60%) rename packages/react-native-video/ios/view/fabric/{VideoViewManager.mm => RCTVideoViewViewManager.mm} (53%) rename packages/react-native-video/ios/view/paper/{VideoView.h => RCTVideoViewComponentView.h} (75%) rename packages/react-native-video/ios/view/paper/{VideoView.mm => RCTVideoViewComponentView.mm} (87%) create mode 100644 packages/react-native-video/ios/view/paper/RCTVideoViewViewManager.m delete mode 100644 packages/react-native-video/ios/view/paper/VideoViewManager.m diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index e2f51ea4..d30a26b0 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1565,7 +1565,7 @@ PODS: - React-logger (= 0.77.2) - React-perflogger (= 0.77.2) - React-utils (= 0.77.2) - - ReactNativeVideo (7.0.0-alpha.0): + - ReactNativeVideo (7.0.0-alpha.1): - DoubleConversion - glog - hermes-engine @@ -1876,7 +1876,7 @@ SPEC CHECKSUMS: ReactAppDependencyProvider: f334cebc0beed0a72490492e978007082c03d533 ReactCodegen: 474fbb3e4bb0f1ee6c255d1955db76e13d509269 ReactCommon: 7763e59534d58e15f8f22121cdfe319040e08888 - ReactNativeVideo: 8de1c56f95b9137b7c8f416982488a6d321a6542 + ReactNativeVideo: ccaea22f81a6b60376e8bdb024368a2b5df400f6 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: 31a098f74c16780569aebd614a0f37a907de0189 diff --git a/packages/react-native-video/android/build.gradle b/packages/react-native-video/android/build.gradle index 6f28fe92..b6482f5b 100644 --- a/packages/react-native-video/android/build.gradle +++ b/packages/react-native-video/android/build.gradle @@ -242,7 +242,7 @@ dependencies { if (isNewArchitectureEnabled()) { react { jsRootDir = file("../src/spec/fabric") - libraryName = "VideoView" + libraryName = "RNCVideoView" codegenJavaPackageName = "com.video" } } diff --git a/packages/react-native-video/android/src/main/java/com/video/react/VideoViewViewManager.kt b/packages/react-native-video/android/src/main/java/com/video/react/VideoViewViewManager.kt index c4036bb0..1d71fbf7 100644 --- a/packages/react-native-video/android/src/main/java/com/video/react/VideoViewViewManager.kt +++ b/packages/react-native-video/android/src/main/java/com/video/react/VideoViewViewManager.kt @@ -11,8 +11,8 @@ import com.facebook.react.uimanager.UIManagerHelper import com.facebook.react.uimanager.ViewManagerDelegate import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.events.Event -import com.facebook.react.viewmanagers.VideoViewManagerDelegate -import com.facebook.react.viewmanagers.VideoViewManagerInterface +import com.facebook.react.viewmanagers.RNCVideoViewManagerDelegate +import com.facebook.react.viewmanagers.RNCVideoViewManagerInterface import com.video.view.VideoView internal class NitroIdChange( @@ -33,11 +33,11 @@ internal class NitroIdChange( @UnstableApi @ReactModule(name = VideoViewViewManager.NAME) -class VideoViewViewManager : SimpleViewManager(), VideoViewManagerInterface { +class VideoViewViewManager : SimpleViewManager(), RNCVideoViewManagerInterface { private val mDelegate: ViewManagerDelegate init { - mDelegate = VideoViewManagerDelegate(this) + mDelegate = RNCVideoViewManagerDelegate(this) } @ReactProp(name = "nitroId") @@ -73,6 +73,6 @@ class VideoViewViewManager : SimpleViewManager(), VideoViewManagerInt } companion object { - const val NAME = "VideoView" + const val NAME = "RNCVideoView" } } diff --git a/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerDelegate.java b/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerDelegate.java similarity index 78% rename from packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerDelegate.java rename to packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerDelegate.java index d829da8c..2a7c45bc 100644 --- a/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerDelegate.java +++ b/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerDelegate.java @@ -15,8 +15,8 @@ import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; import com.facebook.react.uimanager.LayoutShadowNode; -public class VideoViewManagerDelegate & VideoViewManagerInterface> extends BaseViewManagerDelegate { - public VideoViewManagerDelegate(U viewManager) { +public class RNCVideoViewManagerDelegate & RNCVideoViewManagerInterface> extends BaseViewManagerDelegate { + public RNCVideoViewManagerDelegate(U viewManager) { super(viewManager); } @Override diff --git a/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerInterface.java b/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerInterface.java similarity index 86% rename from packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerInterface.java rename to packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerInterface.java index eea34623..fd4069fc 100644 --- a/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/VideoViewManagerInterface.java +++ b/packages/react-native-video/android/src/paper/java/com/facebook/react/viewmanagers/RNCVideoViewManagerInterface.java @@ -11,6 +11,6 @@ package com.facebook.react.viewmanagers; import android.view.View; -public interface VideoViewManagerInterface { +public interface RNCVideoViewManagerInterface { void setNitroId(T view, int value); } diff --git a/packages/react-native-video/ios/view/fabric/VideoView.h b/packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.h similarity index 66% rename from packages/react-native-video/ios/view/fabric/VideoView.h rename to packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.h index 95368eef..a2e8c59d 100644 --- a/packages/react-native-video/ios/view/fabric/VideoView.h +++ b/packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.h @@ -3,7 +3,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface VideoView : RCTViewComponentView +@interface RCTVideoViewComponentView : RCTViewComponentView @end diff --git a/packages/react-native-video/ios/view/fabric/VideoView.mm b/packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.mm similarity index 60% rename from packages/react-native-video/ios/view/fabric/VideoView.mm rename to packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.mm index 745f295c..ce47b84f 100644 --- a/packages/react-native-video/ios/view/fabric/VideoView.mm +++ b/packages/react-native-video/ios/view/fabric/RCTVideoViewComponentView.mm @@ -1,9 +1,9 @@ -#import "VideoView.h" +#import "RCTVideoViewComponentView.h" -#import -#import -#import -#import +#import +#import +#import +#import #import "RCTFabricComponentsPlugins.h" @@ -17,10 +17,10 @@ using namespace facebook::react; -@interface VideoView () +@interface RCTVideoViewComponentView () @end -@implementation VideoView { +@implementation RCTVideoViewComponentView { VideoComponentView * _view; int _nitroId; } @@ -28,7 +28,7 @@ using namespace facebook::react; - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { - static const auto defaultProps = std::make_shared(); + static const auto defaultProps = std::make_shared(); _props = defaultProps; _view = [[VideoComponentView alloc] initWithFrame:frame]; @@ -44,8 +44,8 @@ using namespace facebook::react; - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps { - const auto &oldViewProps = *std::static_pointer_cast(_props); - const auto &newViewProps = *std::static_pointer_cast(props); + const auto &oldViewProps = *std::static_pointer_cast(_props); + const auto &newViewProps = *std::static_pointer_cast(props); if (oldViewProps.nitroId != newViewProps.nitroId) { [self setNitroId:newViewProps.nitroId]; @@ -63,7 +63,7 @@ using namespace facebook::react; // Event emitter convenience method - (void)onNitroIdChange:(int)nitroId { - auto eventEmitter = std::dynamic_pointer_cast(_eventEmitter); + auto eventEmitter = std::dynamic_pointer_cast(_eventEmitter); if (!eventEmitter || nitroId == -1) { return; } @@ -78,12 +78,12 @@ using namespace facebook::react; + (ComponentDescriptorProvider)componentDescriptorProvider { - return concreteComponentDescriptorProvider(); + return concreteComponentDescriptorProvider(); } -Class VideoViewCls(void) +Class RNCVideoViewCls(void) { - return VideoView.class; + return RCTVideoViewComponentView.class; } @end diff --git a/packages/react-native-video/ios/view/fabric/VideoViewManager.mm b/packages/react-native-video/ios/view/fabric/RCTVideoViewViewManager.mm similarity index 53% rename from packages/react-native-video/ios/view/fabric/VideoViewManager.mm rename to packages/react-native-video/ios/view/fabric/RCTVideoViewViewManager.mm index d8701cb7..5f638ff3 100644 --- a/packages/react-native-video/ios/view/fabric/VideoViewManager.mm +++ b/packages/react-native-video/ios/view/fabric/RCTVideoViewViewManager.mm @@ -2,12 +2,12 @@ #import #import "RCTBridge.h" -@interface VideoViewManager : RCTViewManager +@interface RCTVideoViewViewManager : RCTViewManager @end -@implementation VideoViewManager +@implementation RCTVideoViewViewManager -RCT_EXPORT_MODULE(VideoView) +RCT_EXPORT_MODULE(RNCVideoView) RCT_EXPORT_VIEW_PROPERTY(nitroId, NSNumber) diff --git a/packages/react-native-video/ios/view/paper/VideoView.h b/packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.h similarity index 75% rename from packages/react-native-video/ios/view/paper/VideoView.h rename to packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.h index 7e12dec3..9050b578 100644 --- a/packages/react-native-video/ios/view/paper/VideoView.h +++ b/packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.h @@ -1,6 +1,6 @@ #import -@interface VideoView : RCTView +@interface RCTVideoViewComponentView : RCTView @property (nonatomic, copy) NSNumber *nitroId; @property (nonatomic, copy) RCTDirectEventBlock onNitroIdChange; diff --git a/packages/react-native-video/ios/view/paper/VideoView.mm b/packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.mm similarity index 87% rename from packages/react-native-video/ios/view/paper/VideoView.mm rename to packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.mm index c40a664f..441f1217 100644 --- a/packages/react-native-video/ios/view/paper/VideoView.mm +++ b/packages/react-native-video/ios/view/paper/RCTVideoViewComponentView.mm @@ -1,4 +1,4 @@ -#import "VideoView.h" +#import "RCTVideoViewComponentView.h" #import "ReactNativeVideo-Swift-Cxx-Umbrella.hpp" @@ -8,7 +8,7 @@ #import "ReactNativeVideo-Swift.h" #endif -@implementation VideoView { +@implementation RCTVideoViewComponentView { VideoComponentView* _view; } @@ -20,7 +20,7 @@ _view.translatesAutoresizingMaskIntoConstraints = NO; [self addSubview:_view]; - // Set up constraints to make VideoComponentView fill NitroView + // Set up constraints to make VideoComponentView fill RCTVideoViewComponentView [NSLayoutConstraint activateConstraints:@[ [_view.leadingAnchor constraintEqualToAnchor:self.leadingAnchor], [_view.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], diff --git a/packages/react-native-video/ios/view/paper/RCTVideoViewViewManager.m b/packages/react-native-video/ios/view/paper/RCTVideoViewViewManager.m new file mode 100644 index 00000000..685f4bf7 --- /dev/null +++ b/packages/react-native-video/ios/view/paper/RCTVideoViewViewManager.m @@ -0,0 +1,18 @@ +#import +#import "RCTEventDispatcher.h" +#import "RCTVideoViewComponentView.h" + +@interface RCTVideoViewViewManager : RCTViewManager +@end + +@implementation RCTVideoViewViewManager + +RCT_EXPORT_MODULE(RNCVideoView) +RCT_EXPORT_VIEW_PROPERTY(nitroId, NSNumber) +RCT_EXPORT_VIEW_PROPERTY(onNitroIdChange, RCTDirectEventBlock) + +- (UIView *)view { + return [[RCTVideoViewComponentView alloc] init]; +} + +@end diff --git a/packages/react-native-video/ios/view/paper/VideoViewManager.m b/packages/react-native-video/ios/view/paper/VideoViewManager.m deleted file mode 100644 index e9afe7c2..00000000 --- a/packages/react-native-video/ios/view/paper/VideoViewManager.m +++ /dev/null @@ -1,18 +0,0 @@ -#import -#import "RCTEventDispatcher.h" -#import "VideoView.h" - -@interface ViewViewManager : RCTViewManager -@end - -@implementation ViewViewManager - -RCT_EXPORT_MODULE(VideoView) -RCT_EXPORT_VIEW_PROPERTY(nitroId, NSNumber) -RCT_EXPORT_VIEW_PROPERTY(onNitroIdChange, RCTDirectEventBlock) - -- (UIView *)view { - return [[VideoView alloc] init]; -} - -@end diff --git a/packages/react-native-video/package.json b/packages/react-native-video/package.json index 33d3e30c..acdff95f 100644 --- a/packages/react-native-video/package.json +++ b/packages/react-native-video/package.json @@ -135,11 +135,16 @@ ] }, "codegenConfig": { - "name": "RNVideoViewSpec", - "type": "all", + "name": "RNCVideoViewSpec", + "type": "components", "jsSrcsDir": "src/spec/fabric", "android": { "javaPackageName": "com.video.react" + }, + "ios": { + "componentProvider": { + "RNCVideoView": "RCTVideoViewComponentView" + } } }, "create-react-native-library": { diff --git a/packages/react-native-video/react-native.config.js b/packages/react-native-video/react-native.config.js index 1b698e9e..4c8cc7a5 100644 --- a/packages/react-native-video/react-native.config.js +++ b/packages/react-native-video/react-native.config.js @@ -11,7 +11,8 @@ module.exports = { * @type {import('@react-native-community/cli-types').AndroidDependencyParams} */ android: { - packageImportPath: "import com.video.react.VideoPackage;" + packageImportPath: "import com.video.react.VideoPackage;", + componentDescriptors: ["RNCVideoViewComponentDescriptor"], }, }, }, diff --git a/packages/react-native-video/src/spec/fabric/VideoViewNativeComponent.ts b/packages/react-native-video/src/spec/fabric/VideoViewNativeComponent.ts index 3d6ab2ba..41a83d37 100644 --- a/packages/react-native-video/src/spec/fabric/VideoViewNativeComponent.ts +++ b/packages/react-native-video/src/spec/fabric/VideoViewNativeComponent.ts @@ -14,4 +14,4 @@ export interface ViewViewNativeProps extends ViewProps { onNitroIdChange?: DirectEventHandler; } -export default codegenNativeComponent('VideoView'); +export default codegenNativeComponent('RNCVideoView');