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"
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation SKComponentLayoutDescriptor {
|
@implementation SKComponentLayoutDescriptor {
|
||||||
NSDictionary<NSNumber*, NSString*>* CKFlexboxAlignSelfEnumMap;
|
|
||||||
NSDictionary<NSNumber*, NSString*>* CKFlexboxPositionTypeEnumMap;
|
|
||||||
NSArray<SKSubDescriptor*>* _registeredSubdescriptors;
|
NSArray<SKSubDescriptor*>* _registeredSubdescriptors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,27 +39,6 @@
|
|||||||
if (!_registeredSubdescriptors) {
|
if (!_registeredSubdescriptors) {
|
||||||
_registeredSubdescriptors = [NSArray new];
|
_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 {
|
- (NSString*)identifierForNode:(SKComponentLayoutWrapper*)node {
|
||||||
@@ -142,9 +119,9 @@
|
|||||||
@"margin" : flexboxRect(child.margin),
|
@"margin" : flexboxRect(child.margin),
|
||||||
@"flexBasis" : relativeDimension(child.flexBasis),
|
@"flexBasis" : relativeDimension(child.flexBasis),
|
||||||
@"padding" : flexboxRect(child.padding),
|
@"padding" : flexboxRect(child.padding),
|
||||||
@"alignSelf" : CKFlexboxAlignSelfEnumMap[@(child.alignSelf)],
|
@"alignSelf" : stringForAlignSelf(child.alignSelf),
|
||||||
@"position" : @{
|
@"position" : @{
|
||||||
@"type" : CKFlexboxPositionTypeEnumMap[@(child.position.type)],
|
@"type" : stringForFlexboxPositionType(child.position.type),
|
||||||
@"start" : relativeDimension(child.position.start),
|
@"start" : relativeDimension(child.position.start),
|
||||||
@"top" : relativeDimension(child.position.top),
|
@"top" : relativeDimension(child.position.top),
|
||||||
@"end" : relativeDimension(child.position.end),
|
@"end" : relativeDimension(child.position.end),
|
||||||
@@ -231,6 +208,34 @@
|
|||||||
.location != NSNotFound;
|
.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
|
@end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user