11#import < React/RCTXRModule.h>
22
3+ #if RCT_NEW_ARCH_ENABLED
34#import < FBReactNativeSpec_visionOS/FBReactNativeSpec_visionOS.h>
5+ #endif
46
57#import < React/RCTBridge.h>
68#import < React/RCTConvert.h>
79#import < React/RCTUtils.h>
810#import " RCTXR-Swift.h"
911
12+ #if RCT_NEW_ARCH_ENABLED
1013@interface RCTXRModule () <NativeXRModuleSpec>
1114@end
15+ #endif
1216
1317@implementation RCTXRModule {
1418 UIViewController *_immersiveBridgeView;
@@ -56,6 +60,19 @@ @implementation RCTXRModule {
5660 });
5761}
5862
63+ - (void ) removeImmersiveBridge
64+ {
65+ RCTExecuteOnMainQueue (^{
66+ [self ->_immersiveBridgeView willMoveToParentViewController: nil ];
67+ [self ->_immersiveBridgeView.view removeFromSuperview ];
68+ [self ->_immersiveBridgeView removeFromParentViewController ];
69+ self->_immersiveBridgeView = nil ;
70+ });
71+ }
72+
73+ #pragma mark New Architecture
74+
75+ #if RCT_NEW_ARCH_ENABLED
5976- (facebook::react::ModuleConstants<JS::NativeXRModule::Constants::Builder>)constantsToExport {
6077 return [self getConstants ];
6178}
@@ -70,20 +87,13 @@ @implementation RCTXRModule {
7087
7188 return constants;
7289}
90+ #endif
7391
74- - (void ) removeImmersiveBridge
75- {
76- RCTExecuteOnMainQueue (^{
77- [self ->_immersiveBridgeView willMoveToParentViewController: nil ];
78- [self ->_immersiveBridgeView.view removeFromSuperview ];
79- [self ->_immersiveBridgeView removeFromParentViewController ];
80- self->_immersiveBridgeView = nil ;
81- });
82- }
83-
92+ #if RCT_NEW_ARCH_ENABLED
8493- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule : (const facebook::react::ObjCTurboModule::InitParams &)params {
8594 return std::make_shared<facebook::react::NativeXRModuleSpecJSI>(params);
8695}
96+ #endif
8797
8898+ (BOOL )requiresMainQueueSetup
8999{
0 commit comments