Refactor SKComponentLayoutDescriptor
Reviewed By: Andrey-Mishanin Differential Revision: D20458227 fbshipit-source-id: 1723043d6b217323a1c70a455042b28eaf5218a0
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1725fd6bf1
commit
19876273a3
@@ -30,8 +30,6 @@
|
||||
#import "Utils.h"
|
||||
|
||||
@implementation SKComponentLayoutDescriptor {
|
||||
NSDictionary<NSNumber*, NSString*>* CKFlexboxAlignSelfEnumMap;
|
||||
NSDictionary<NSNumber*, NSString*>* CKFlexboxPositionTypeEnumMap;
|
||||
NSArray<SKSubDescriptor*>* _registeredSubdescriptors;
|
||||
}
|
||||
|
||||
@@ -41,27 +39,6 @@
|
||||
if (!_registeredSubdescriptors) {
|
||||
_registeredSubdescriptors = [NSArray new];
|
||||
}
|
||||
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
[self initEnumMaps];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)initEnumMaps {
|
||||
CKFlexboxAlignSelfEnumMap = @{
|
||||
@(CKFlexboxAlignSelfAuto) : @"auto",
|
||||
@(CKFlexboxAlignSelfStart) : @"start",
|
||||
@(CKFlexboxAlignSelfEnd) : @"end",
|
||||
@(CKFlexboxAlignSelfCenter) : @"center",
|
||||
@(CKFlexboxAlignSelfBaseline) : @"baseline",
|
||||
@(CKFlexboxAlignSelfStretch) : @"stretch",
|
||||
};
|
||||
|
||||
CKFlexboxPositionTypeEnumMap = @{
|
||||
@(CKFlexboxPositionTypeRelative) : @"relative",
|
||||
@(CKFlexboxPositionTypeAbsolute) : @"absolute",
|
||||
};
|
||||
}
|
||||
|
||||
- (NSString*)identifierForNode:(SKComponentLayoutWrapper*)node {
|
||||
@@ -142,9 +119,9 @@
|
||||
@"margin" : flexboxRect(child.margin),
|
||||
@"flexBasis" : relativeDimension(child.flexBasis),
|
||||
@"padding" : flexboxRect(child.padding),
|
||||
@"alignSelf" : CKFlexboxAlignSelfEnumMap[@(child.alignSelf)],
|
||||
@"alignSelf" : stringForAlignSelf(child.alignSelf),
|
||||
@"position" : @{
|
||||
@"type" : CKFlexboxPositionTypeEnumMap[@(child.position.type)],
|
||||
@"type" : stringForFlexboxPositionType(child.position.type),
|
||||
@"start" : relativeDimension(child.position.start),
|
||||
@"top" : relativeDimension(child.position.top),
|
||||
@"end" : relativeDimension(child.position.end),
|
||||
@@ -231,6 +208,34 @@
|
||||
.location != NSNotFound;
|
||||
}
|
||||
|
||||
static NSString* stringForAlignSelf(CKFlexboxAlignSelf alignSelf) {
|
||||
switch (alignSelf) {
|
||||
case CKFlexboxAlignSelfAuto:
|
||||
return @"auto";
|
||||
case CKFlexboxAlignSelfStart:
|
||||
return @"start";
|
||||
case CKFlexboxAlignSelfEnd:
|
||||
return @"end";
|
||||
case CKFlexboxAlignSelfCenter:
|
||||
return @"center";
|
||||
case CKFlexboxAlignSelfBaseline:
|
||||
return @"baseline";
|
||||
case CKFlexboxAlignSelfStretch:
|
||||
return @"stretch";
|
||||
}
|
||||
return @"unknown";
|
||||
}
|
||||
|
||||
static NSString* stringForFlexboxPositionType(CKFlexboxPositionType type) {
|
||||
switch (type) {
|
||||
case CKFlexboxPositionTypeRelative:
|
||||
return @"relative";
|
||||
case CKFlexboxPositionTypeAbsolute:
|
||||
return @"absolute";
|
||||
}
|
||||
return @"unknown";
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user