/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/React/Base/RCTViewRegistry.m
78 строк
2 KB
Ramanpreet Nara
Consolidate all c macros (#53823)
26 сен 2025, 02:59
26 сен 2025, 02:59
d389008
Код
Авторство
О чём код?
/* * 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 <React/RCTSurfacePresenterStub.h> #import <React/RCTUIManager.h> #import "RCTBridge.h" #import "RCTBridgeModule.h" @implementation RCTViewRegistry { RCTBridgelessComponentViewProvider _bridgelessComponentViewProvider; #ifndef RCT_REMOVE_LEGACY_ARCH __weak RCTBridge *_bridge; #endif // RCT_REMOVE_LEGACY_ARCH } #ifndef RCT_REMOVE_LEGACY_ARCH - (void)setBridge:(RCTBridge *)bridge { _bridge = bridge; } #endif // RCT_REMOVE_LEGACY_ARCH - (void)setBridgelessComponentViewProvider:(RCTBridgelessComponentViewProvider)bridgelessComponentViewProvider { _bridgelessComponentViewProvider = bridgelessComponentViewProvider; } - (UIView *)viewForReactTag:(NSNumber *)reactTag { UIView *view = nil; #ifndef RCT_REMOVE_LEGACY_ARCH RCTBridge *bridge = _bridge; if (bridge) { view = [bridge.uiManager viewForReactTag:reactTag]; } #endif // RCT_REMOVE_LEGACY_ARCH if (view == nil && _bridgelessComponentViewProvider) { view = _bridgelessComponentViewProvider(reactTag); } return view; } - (void)addUIBlock:(RCTViewRegistryUIBlock)block { if (!block) { return; } __weak __typeof(self) weakSelf = self; #ifndef RCT_REMOVE_LEGACY_ARCH if (_bridge) { [_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) { __typeof(self) strongSelf = weakSelf; if (strongSelf) { block(strongSelf); } }]; return; } #endif RCTExecuteOnMainQueue(^{ __typeof(self) strongSelf = weakSelf; if (strongSelf) { block(strongSelf); } }); // RCT_REMOVE_LEGACY_ARCH } @end