From dbf0e3db43ec3e63307196be72cf56d84e29179e Mon Sep 17 00:00:00 2001 From: Oleksii Dykan Date: Wed, 7 Aug 2019 10:19:56 -0700 Subject: [PATCH] Add size prop to layout inspector Summary: Size is passed as a prop to every `CKComponent` and `CKFlexboxChild`. It is useful to see where it was set exactly Reviewed By: kevin0571 Differential Revision: D16688496 fbshipit-source-id: 5f8dc39a967ab2d7d89d6a37a8152aa6b59db220 --- .../CKComponent+Sonar.mm | 2 ++ .../SKComponentLayoutDescriptor.mm | 1 + .../FlipperKitLayoutComponentKitSupport/Utils.h | 1 + .../FlipperKitLayoutComponentKitSupport/Utils.mm | 11 +++++++++++ 4 files changed, 15 insertions(+) diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/CKComponent+Sonar.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/CKComponent+Sonar.mm index 9e9c8f12e..e4ac743e7 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/CKComponent+Sonar.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/CKComponent+Sonar.mm @@ -27,6 +27,7 @@ #import "CKInsetComponent+Sonar.h" #import "CKStatelessComponent+Sonar.h" #import "FKDataStorageForLiveEditing.h" +#import "Utils.h" /** This protocol isn't actually adopted anywhere, it just lets us use the SEL below */ @protocol SonarKitLayoutComponentKitOverrideInformalProtocol @@ -138,6 +139,7 @@ static CK::StaticMutex _mutex = CK_MUTEX_INITIALIZER; withValue: @{ @"frame": SKObject(self.viewContext.frame), @"controller": SKObject(NSStringFromClass([self.controller class])), + @"size": SKObject(ckcomponentSize([self size])), }]]; auto const canBeReusedCounter = self.flipper_canBeReusedCounter; diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm index 0069bab0c..aa0015608 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/SKComponentLayoutDescriptor.mm @@ -130,6 +130,7 @@ @"flexGrow": SKObject(@(child.flexGrow)), @"flexShrink": SKObject(@(child.flexShrink)), @"zIndex": SKObject(@(child.zIndex)), + @"sizeConstraints": SKObject(ckcomponentSize(child.sizeConstraints)), @"useTextRounding": SKObject(@(child.useTextRounding)), @"margin": flexboxRect(child.margin), @"flexBasis": relativeDimension(child.flexBasis), diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.h b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.h index fa8ec58c8..bd590bf0e 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.h +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.h @@ -10,3 +10,4 @@ NSString *relativeDimension(CKRelativeDimension dimension); NSDictionary *flexboxRect(CKFlexboxSpacing spacing); CKRelativeDimension relativeStructDimension(NSString *dimension); +NSDictionary *ckcomponentSize(CKComponentSize size); diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.mm index 62c81114b..4ae1f9f40 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.mm @@ -39,4 +39,15 @@ NSDictionary *flexboxRect(CKFlexboxSpacing spacing) { }; } +NSDictionary *ckcomponentSize(CKComponentSize size) { + return @{ + @"width": relativeDimension(size.width), + @"height": relativeDimension(size.height), + @"minWidth": relativeDimension(size.minWidth), + @"minHeight": relativeDimension(size.minHeight), + @"maxWidth": relativeDimension(size.maxWidth), + @"maxHeight": relativeDimension(size.maxHeight), + }; +} + #endif