Files
flipper/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentHostingViewDescriptor.mm
Andrey Mishanin 127cb604be Use unique id for both root and hosting views
Summary: Same as D19600721, but supports hosting views too.

Reviewed By: cuva

Differential Revision: D19949935

fbshipit-source-id: 4490b03aff9f6d00003cf59468081cc3a4fef598
2020-03-11 09:31:09 -07:00

49 lines
1.4 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 "SKComponentHostingViewDescriptor.h"
#import <ComponentKit/CKComponentAttachController.h>
#import <ComponentKit/CKComponentAttachControllerInternal.h>
#import <ComponentKit/CKComponentHostingView.h>
#import <ComponentKit/CKComponentHostingViewInternal.h>
#import <ComponentKit/CKComponentLayout.h>
#import <FlipperKitLayoutPlugin/SKDescriptorMapper.h>
#import "SKComponentLayoutWrapper.h"
@implementation SKComponentHostingViewDescriptor
- (NSString*)identifierForNode:(CKComponentHostingView*)node {
return [NSString stringWithFormat:@"%p", node];
}
- (NSUInteger)childCountForNode:(CKComponentHostingView*)node {
return node.mountedLayout.component ? 1 : 0;
}
- (id)childForNode:(CKComponentHostingView*)node atIndex:(NSUInteger)index {
return [SKComponentLayoutWrapper
newFromRoot:node
parentKey:[NSString stringWithFormat:@"%@.", node.uniqueIdentifier]];
}
- (void)setHighlighted:(BOOL)highlighted forNode:(CKComponentHostingView*)node {
SKNodeDescriptor* viewDescriptor = [self descriptorForClass:[UIView class]];
[viewDescriptor setHighlighted:highlighted forNode:node];
}
- (void)hitTest:(SKTouch*)touch forNode:(CKComponentHostingView*)node {
[touch continueWithChildIndex:0 withOffset:(CGPoint){0, 0}];
}
@end
#endif