/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/React/CoreModules/RCTLogBoxView.mm
93 строки
3 KB
Ramanpreet Nara
Remove legacy validation warning infra (#53792)
26 сен 2025, 03:58
26 сен 2025, 03:58
2b5938c
Код
Авторство
О чём код?
/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import "RCTLogBoxView.h" #import <React/RCTLog.h> #import <React/RCTSurface.h> #import <React/RCTSurfaceHostingView.h> @implementation RCTLogBoxView { #ifndef RCT_REMOVE_LEGACY_ARCH RCTSurface *_surface; #endif // RCT_REMOVE_LEGACY_ARCH } - (instancetype)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame]) != nullptr) { self.windowLevel = UIWindowLevelStatusBar - 1; self.backgroundColor = [UIColor clearColor]; } return self; } - (void)createRootViewController:(UIView *)view { UIViewController *_rootViewController = [UIViewController new]; _rootViewController.view = view; _rootViewController.view.backgroundColor = [UIColor clearColor]; _rootViewController.modalPresentationStyle = UIModalPresentationFullScreen; self.rootViewController = _rootViewController; } #ifndef RCT_REMOVE_LEGACY_ARCH - (instancetype)initWithWindow:(UIWindow *)window bridge:(RCTBridge *)bridge { self = [super initWithWindowScene:window.windowScene]; self.windowLevel = UIWindowLevelStatusBar - 1; self.backgroundColor = [UIColor clearColor]; _surface = [[RCTSurface alloc] initWithBridge:bridge moduleName:@"LogBox" initialProperties:@{}]; [_surface start]; if (![_surface synchronouslyWaitForStage:RCTSurfaceStageSurfaceDidInitialMounting timeout:1]) { RCTLogInfo(@"Failed to mount LogBox within 1s"); } [self createRootViewController:(UIView *)_surface.view]; return self; } #endif // RCT_REMOVE_LEGACY_ARCH - (instancetype)initWithWindow:(UIWindow *)window surfacePresenter:(id<RCTSurfacePresenterStub>)surfacePresenter { self = [super initWithWindowScene:window.windowScene]; id<RCTSurfaceProtocol> surface = [surfacePresenter createFabricSurfaceForModuleName:@"LogBox" initialProperties:@{}]; [surface start]; RCTSurfaceHostingView *rootView = [[RCTSurfaceHostingView alloc] initWithSurface:surface sizeMeasureMode:RCTSurfaceSizeMeasureModeWidthExact | RCTSurfaceSizeMeasureModeHeightExact]; [self createRootViewController:rootView]; return self; } - (void)layoutSubviews { [super layoutSubviews]; #ifndef RCT_REMOVE_LEGACY_ARCH [_surface setSize:self.frame.size]; #endif // RCT_REMOVE_LEGACY_ARCH } - (void)dealloc { #if !TARGET_OS_MACCATALYST // sharedApplication.delegate is not available on Mac Catalyst [RCTSharedApplication().delegate.window makeKeyWindow]; #endif } - (void)show { [self becomeFirstResponder]; [self makeKeyAndVisible]; } @end