Files
flipper/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutComponentKitSupport/Utils.mm
Oleksii Dykan dbf0e3db43 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
2019-08-07 10:24:19 -07:00

54 lines
1.7 KiB
Plaintext

/*
* Copyright (c) 2018-present, 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
#include "Utils.h"
NSString *relativeDimension(CKRelativeDimension dimension) {
switch(dimension.type()) {
case CKRelativeDimension::Type::PERCENT:
return [NSString stringWithFormat: @"%@%%", @(dimension.value())];
case CKRelativeDimension::Type::POINTS:
return [NSString stringWithFormat: @"%@pt", @(dimension.value())];
default:
return @"auto";
}
}
CKRelativeDimension relativeStructDimension(NSString *dimension) {
if ([dimension hasSuffix:@"%"]) {
return CKRelativeDimension::Percent([[dimension substringToIndex:([dimension length] - 1)] integerValue]);
}
if ([dimension hasSuffix:@"pt"]) {
return CKRelativeDimension::Points([[dimension substringToIndex:([dimension length] - 2)] integerValue]);
}
return CKRelativeDimension::Auto();
}
NSDictionary<NSString *, NSString *> *flexboxRect(CKFlexboxSpacing spacing) {
return @{
@"top": relativeDimension(spacing.top.dimension()),
@"bottom": relativeDimension(spacing.bottom.dimension()),
@"start": relativeDimension(spacing.start.dimension()),
@"end": relativeDimension(spacing.end.dimension())
};
}
NSDictionary<NSString *, NSString *> *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