Files
flipper/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentRootViewDescriptor.mm
Andrey Mishanin 67a1c27af2 Prepending root scope ID
Summary: Using just the scope identifier for the root component is not sufficient when it doesn't have a scope. Solve this by prepending the scope root identifier to the parent identifier.

Reviewed By: fabiomassimo

Differential Revision: D19600721

fbshipit-source-id: d90f9ffd7ae369c76316cebc4ef792626a4584b7
2020-01-28 08:27:38 -08:00

52 lines
1.6 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 "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]];
}
- (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