Summary: Adding the new "Identity" section to CK root views' description. Reviewed By: cuva Differential Revision: D19948784 fbshipit-source-id: f5e7fe51afd387a476f6500db32b8b5149594007
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
/*
|
|
* 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.
|
|
*/
|
|
|
|
#if FB_SONARKIT_ENABLED
|
|
|
|
#import "SKComponentRootViewDescriptor.h"
|
|
|
|
#import <ComponentKit/CKComponentAttachController.h>
|
|
#import <ComponentKit/CKComponentAttachControllerInternal.h>
|
|
#import <ComponentKit/CKComponentHostingView.h>
|
|
#import <ComponentKit/CKComponentHostingViewInternal.h>
|
|
#import <ComponentKit/CKComponentLayout.h>
|
|
#import <ComponentKit/CKComponentRootViewInternal.h>
|
|
|
|
#import <FlipperKitLayoutPlugin/SKDescriptorMapper.h>
|
|
#import <FlipperKitLayoutPlugin/SKObject.h>
|
|
|
|
#import "SKComponentLayoutWrapper.h"
|
|
|
|
@implementation SKComponentRootViewDescriptor
|
|
|
|
- (NSString*)identifierForNode:(CKComponentRootView*)node {
|
|
return [NSString stringWithFormat:@"%p", node];
|
|
}
|
|
|
|
- (NSUInteger)childCountForNode:(CKComponentRootView*)node {
|
|
const auto state = CKGetAttachStateForView(node);
|
|
return state == nil ? 0 : 1;
|
|
}
|
|
|
|
- (id)childForNode:(CKComponentRootView*)node atIndex:(NSUInteger)index {
|
|
auto const attachState = CKGetAttachStateForView(node);
|
|
return [SKComponentLayoutWrapper
|
|
newFromRoot:node
|
|
parentKey:[NSString
|
|
stringWithFormat:@"%d.", attachState.scopeIdentifier]];
|
|
}
|
|
|
|
- (NSArray<SKNamed<NSDictionary*>*>*)dataForNode:(CKComponentRootView*)node {
|
|
auto const attachState = CKGetAttachStateForView(node);
|
|
return @[ [SKNamed
|
|
newWithName:@"Identity"
|
|
withValue:@{
|
|
@"scopeRootIdentifier" : SKObject{@(attachState.scopeIdentifier)}
|
|
}] ];
|
|
}
|
|
|
|
- (void)setHighlighted:(BOOL)highlighted forNode:(CKComponentRootView*)node {
|
|
SKNodeDescriptor* viewDescriptor = [self descriptorForClass:[UIView class]];
|
|
[viewDescriptor setHighlighted:highlighted forNode:node];
|
|
}
|
|
|
|
- (void)hitTest:(SKTouch*)touch forNode:(CKComponentRootView*)node {
|
|
[touch continueWithChildIndex:0 withOffset:(CGPoint){0, 0}];
|
|
}
|
|
|
|
@end
|
|
|
|
#endif
|