diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm index 617fba7ab..bce835eb9 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm @@ -116,6 +116,20 @@ static std::vector>& subDescriptors() { return data; } +- (NSArray*>*>*)extraInfoForNode: + (SKComponentLayoutWrapper*)node { + NSMutableArray*>*>* data = + [NSMutableArray new]; + NSMutableDictionary* metaData = + [[NSMutableDictionary alloc] init]; + + [metaData setObject:node.component.className forKey:@"className"]; + [metaData setObject:@"CK" forKey:@"framework"]; + + [data addObject:[SKNamed newWithName:@"metaData" withValue:metaData]]; + return data; +} + - (NSDictionary*)propsForFlexboxChild: (CKFlexboxComponentChild)child { return @{ diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.mm index 42b8bfe6b..1badbc419 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.mm @@ -484,6 +484,7 @@ NSMutableArray* attributes = [NSMutableArray new]; NSMutableDictionary* data = [NSMutableDictionary new]; + NSMutableDictionary* extraInfo = [NSMutableDictionary new]; const auto* nodeAttributes = [nodeDescriptor attributesForNode:node]; for (const SKNamed* namedPair in nodeAttributes) { @@ -502,6 +503,11 @@ data[namedPair.name] = namedPair.value; } + const auto* nodeExtraInfo = [nodeDescriptor extraInfoForNode:node]; + for (const SKNamed* namedPair in nodeExtraInfo) { + extraInfo[namedPair.name] = namedPair.value; + } + NSMutableArray* children = [self getChildrenForNode:node withDescriptor:nodeDescriptor]; @@ -514,6 +520,7 @@ @"attributes" : attributes, @"data" : data, @"decoration" : [nodeDescriptor decorationForNode:node] ?: @"(unknown)", + @"extraInfo" : extraInfo, }; return nodeDic; diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.h b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.h index b00289c5e..c72f01ea5 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.h +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.h @@ -77,6 +77,12 @@ typedef void (^SKNodeUpdateData)(id value); */ - (NSArray*>*)dataForNode:(T)node; +/** + Get the extra info to pass it back to Sonar application without showing them in + the sidebar. + */ +- (NSArray*>*)extraInfoForNode:(T)node; + /** Get the attributes for this node. Attributes will be showed in the Sonar application right next to the name of the node. diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.mm index 2fd413baa..2a836c82d 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/SKNodeDescriptor.mm @@ -59,6 +59,10 @@ return @[]; } +- (NSArray*>*)extraInfoForNode:(id)node { + return @[]; +} + - (NSArray*>*)attributesForNode:(id)node { return @[]; } diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/SonarKitLayoutPluginTests/SonarKitLayoutPluginTests.m b/iOS/Plugins/FlipperKitLayoutPlugin/SonarKitLayoutPluginTests/SonarKitLayoutPluginTests.m index bd887e409..4d2e9663f 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/SonarKitLayoutPluginTests/SonarKitLayoutPluginTests.m +++ b/iOS/Plugins/FlipperKitLayoutPlugin/SonarKitLayoutPluginTests/SonarKitLayoutPluginTests.m @@ -54,6 +54,7 @@ @"children" : @[], @"attributes" : @[], @"data" : @{}, + @"extraInfo" : @{}, @"decoration" : @"", }])); } @@ -114,6 +115,7 @@ @"children" : @[], @"attributes" : @[], @"data" : @{}, + @"extraInfo" : @{}, @"decoration" : @"", }, @{ @@ -122,6 +124,7 @@ @"children" : @[], @"attributes" : @[], @"data" : @{}, + @"extraInfo" : @{}, @"decoration" : @"", }, @{ @@ -130,6 +133,7 @@ @"children" : @[], @"attributes" : @[], @"data" : @{}, + @"extraInfo" : @{}, @"decoration" : @"", }, ]