mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-29 04:35:36 +08:00
Summary: Part of: #23313. This moves the `RCTTest` lib from `Libraries/RCTTest` to `RNTester/RCTTest`. This also removes `takeSnapshot` from React Native, and implements it as a standalone module in RNTester called `ScreenshotManager`. [General] [Removed] - RCTTest & ReactNative.takeSnapshot Pull Request resolved: https://github.com/facebook/react-native/pull/23721 Differential Revision: D14434796 Pulled By: PeteTheHeat fbshipit-source-id: d6e103a0ea0b6702701cdb5ce8449163ca4628ce
47 lines
995 B
Objective-C
47 lines
995 B
Objective-C
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import "RCTSnapshotManager.h"
|
|
|
|
@interface RCTSnapshotView : UIView
|
|
|
|
@property (nonatomic, copy) RCTDirectEventBlock onSnapshotReady;
|
|
@property (nonatomic, copy) NSString *testIdentifier;
|
|
|
|
@end
|
|
|
|
@implementation RCTSnapshotView
|
|
|
|
- (void)setTestIdentifier:(NSString *)testIdentifier
|
|
{
|
|
if (![_testIdentifier isEqualToString:testIdentifier]) {
|
|
_testIdentifier = [testIdentifier copy];
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
if (self.onSnapshotReady) {
|
|
self.onSnapshotReady(@{@"testIdentifier" : self.testIdentifier});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation RCTSnapshotManager
|
|
|
|
RCT_EXPORT_MODULE()
|
|
|
|
- (UIView *)view
|
|
{
|
|
return [RCTSnapshotView new];
|
|
}
|
|
|
|
RCT_EXPORT_VIEW_PROPERTY(testIdentifier, NSString)
|
|
RCT_EXPORT_VIEW_PROPERTY(onSnapshotReady, RCTDirectEventBlock)
|
|
|
|
@end
|