Refactor Layout Plugin
Summary: This diff moves the iOS descriptors and other layout helpers into its own buck target. Earlier everything was part of the FlipperKitLayoutPlugin target. When kcui, tried to add macos descriptors, we realised that FlipperKitLayoutPlugin doesn't have macos platform in it and thus he had to put #if TARGET_OS_SIMULATOR check in iOS descriptors and at some other places. In order to make the integration easier I decided to split the Layout Plugin in following way. ``` FlipperKitLayoutPlugin -> FlipperKitLayoutIOSDescriptors (platform set as IOS) -> FlipperKitLayoutHelpers (used in iOS Descriptors and usefule for Macos too) -> FlipperKitLayoutMacOSDescriptors(coming soon by kcui)(platform set as MacOS) ``` Reviewed By: kcui Differential Revision: D27127587 fbshipit-source-id: f108ef81914297e93c886fe53dabf0a4bf11ebc1
This commit is contained in:
committed by
Facebook GitHub Bot
parent
8c85da5bc8
commit
790f23301e
@@ -9,8 +9,8 @@
|
||||
|
||||
#import "CKCenterLayoutComponent+Sonar.h"
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
#import <ComponentKit/CKComponent.h>
|
||||
#import <FlipperKit/SKMacros.h>
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
typedef id (^SKNodeDataChanged)(id value);
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
#import <ComponentKit/CKComponentSubclass.h>
|
||||
#import <ComponentKit/CKComponentViewConfiguration.h>
|
||||
#import <ComponentKit/CKMutex.h>
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <objc/message.h>
|
||||
#import <objc/runtime.h>
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
#import "CKFlexboxComponent+Sonar.h"
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
#import "CKInsetComponent+Sonar.h"
|
||||
|
||||
#import <ComponentKit/CKDimension.h>
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
#import "CKRatioLayoutComponent+Sonar.h"
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
#import "CKStatelessComponent+Sonar.h"
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNamed.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
#import "SKSubDescriptor.h"
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#import <ComponentKit/CKInsetComponent.h>
|
||||
|
||||
#import <FlipperKitHighlightOverlay/SKHighlightOverlay.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <FlipperKitLayoutTextSearchable/FKTextSearchable.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class SKComponentMountedView;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#import <ComponentKit/CKComponentInternal.h>
|
||||
|
||||
#import <FlipperKitHighlightOverlay/SKHighlightOverlay.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <FlipperKitLayoutTextSearchable/FKTextSearchable.h>
|
||||
|
||||
#import "CKComponent+Sonar.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class CKComponentRootView;
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
#import <ComponentKit/CKComponentLayout.h>
|
||||
#import <ComponentKit/CKComponentRootViewInternal.h>
|
||||
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <FlipperKitLayoutPlugin/SKDescriptorMapper.h>
|
||||
#import <FlipperKitLayoutPlugin/SKObject.h>
|
||||
|
||||
#import "SKComponentLayoutWrapper.h"
|
||||
|
||||
|
||||
@@ -7,14 +7,15 @@
|
||||
|
||||
#if FB_SONARKIT_ENABLED
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import <FlipperKit/FlipperPlugin.h>
|
||||
#import <FlipperKit/SKMacros.h>
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import "SKInvalidation.h"
|
||||
#import "SKTapListener.h"
|
||||
#import <FlipperKitLayoutHelpers/SKInvalidation.h>
|
||||
#import <FlipperKitLayoutHelpers/SKTapListener.h>
|
||||
|
||||
@interface FlipperKitLayoutPlugin
|
||||
: NSObject<FlipperPlugin, SKInvalidationDelegate>
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
#import <FlipperKit/FlipperConnection.h>
|
||||
#import <FlipperKit/FlipperResponder.h>
|
||||
#import <FlipperKit/SKMacros.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKSearchResultNode.h>
|
||||
#import <FlipperKitLayoutHelpers/SKTapListener.h>
|
||||
#import <FlipperKitLayoutHelpers/SKTapListenerImpl.h>
|
||||
#import <mutex>
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import "SKSearchResultNode.h"
|
||||
#import "SKTapListener.h"
|
||||
#import "SKTapListenerImpl.h"
|
||||
|
||||
NSObject* parseLayoutEditorMessage(NSObject* message);
|
||||
NSObject* flattenLayoutEditorMessage(NSObject* field);
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutHelpers/FlipperKitLayoutDescriptorMapperProtocol.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class SKNodeDescriptor;
|
||||
|
||||
@interface SKDescriptorMapper : NSObject
|
||||
@interface SKDescriptorMapper : NSObject<SKDescriptorMapperProtocol>
|
||||
|
||||
- (instancetype)initWithDefaults;
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
|
||||
#import "SKApplicationDescriptor.h"
|
||||
#import "SKButtonDescriptor.h"
|
||||
#import "SKScrollViewDescriptor.h"
|
||||
#import "SKViewControllerDescriptor.h"
|
||||
#import "SKViewDescriptor.h"
|
||||
#import <FlipperKitLayoutIOSDescriptors/SKApplicationDescriptor.h>
|
||||
#import <FlipperKitLayoutIOSDescriptors/SKButtonDescriptor.h>
|
||||
#import <FlipperKitLayoutIOSDescriptors/SKScrollViewDescriptor.h>
|
||||
#import <FlipperKitLayoutIOSDescriptors/SKViewControllerDescriptor.h>
|
||||
#import <FlipperKitLayoutIOSDescriptors/SKViewDescriptor.h>
|
||||
|
||||
@implementation SKDescriptorMapper {
|
||||
NSMutableDictionary<NSString*, SKNodeDescriptor*>* _descriptors;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKTapListener.h>
|
||||
#import <FlipperKitLayoutHelpers/SKTapListener.h>
|
||||
|
||||
@interface SKTapListenerMock : NSObject<SKTapListener>
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
#if FB_SONARKIT_ENABLED
|
||||
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
|
||||
#import <FlipperKitLayoutPlugin/SKDescriptorMapper.h>
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitTestUtils/FlipperConnectionMock.h>
|
||||
#import <FlipperKitTestUtils/FlipperResponderMock.h>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutPlugin/SKNodeDescriptor.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
#import "TestNode.h"
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (c) 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.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class SKNodeDescriptor;
|
||||
|
||||
@protocol SKDescriptorMapperProtocol<NSObject>
|
||||
|
||||
- (instancetype)initWithDefaults;
|
||||
|
||||
- (SKNodeDescriptor*)descriptorForClass:(Class)cls;
|
||||
|
||||
- (void)registerDescriptor:(SKNodeDescriptor*)descriptor forClass:(Class)cls;
|
||||
|
||||
- (NSArray<SKNodeDescriptor*>*)allDescriptors;
|
||||
|
||||
@end
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import <FlipperKitLayoutHelpers/FlipperKitLayoutDescriptorMapperProtocol.h>
|
||||
#import "SKNamed.h"
|
||||
#import "SKTouch.h"
|
||||
|
||||
@@ -30,7 +30,7 @@ typedef void (^SKNodeUpdateData)(id value);
|
||||
Initializes the node-descriptor with a SKDescriptorMapper which contains
|
||||
mappings between Class -> SKNodeDescriptor<Class>.
|
||||
*/
|
||||
- (instancetype)initWithDescriptorMapper:(SKDescriptorMapper*)mapper;
|
||||
- (instancetype)initWithDescriptorMapper:(id<SKDescriptorMapperProtocol>)mapper;
|
||||
|
||||
/**
|
||||
Gets the node-descriptor registered for a specific class.
|
||||
@@ -11,13 +11,14 @@
|
||||
#import <FlipperKitLayoutTextSearchable/FKTextSearchable.h>
|
||||
|
||||
@implementation SKNodeDescriptor {
|
||||
SKDescriptorMapper* _mapper;
|
||||
id<SKDescriptorMapperProtocol> _mapper;
|
||||
}
|
||||
|
||||
- (void)setUp {
|
||||
}
|
||||
|
||||
- (instancetype)initWithDescriptorMapper:(SKDescriptorMapper*)mapper {
|
||||
- (instancetype)initWithDescriptorMapper:
|
||||
(id<SKDescriptorMapperProtocol>)mapper {
|
||||
if (self = [super init]) {
|
||||
_mapper = mapper;
|
||||
}
|
||||
@@ -5,10 +5,9 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <FlipperKitLayoutHelpers/FlipperKitLayoutDescriptorMapperProtocol.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
|
||||
typedef void (^SKTouchFinishDelegate)(id<NSObject> currentNode);
|
||||
typedef void (^SKProcessFinishDelegate)(NSDictionary* tree);
|
||||
|
||||
@@ -16,7 +15,7 @@ typedef void (^SKProcessFinishDelegate)(NSDictionary* tree);
|
||||
|
||||
- (instancetype)initWithTouchPoint:(CGPoint)touchPoint
|
||||
withRootNode:(id<NSObject>)node
|
||||
withDescriptorMapper:(SKDescriptorMapper*)mapper
|
||||
withDescriptorMapper:(id<SKDescriptorMapperProtocol>)mapper
|
||||
finishWithBlock:(SKTouchFinishDelegate)d;
|
||||
|
||||
- (void)continueWithChildIndex:(NSUInteger)childIndex
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
CGPoint _currentTouchPoint;
|
||||
|
||||
SKDescriptorMapper* _descriptorMapper;
|
||||
id<SKDescriptorMapperProtocol> _descriptorMapper;
|
||||
|
||||
NSMutableArray<id<NSObject>>* _nodeStack;
|
||||
NSMutableArray<NSMutableDictionary*>* _treeStack;
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
- (instancetype)initWithTouchPoint:(CGPoint)touchPoint
|
||||
withRootNode:(id<NSObject>)node
|
||||
withDescriptorMapper:(SKDescriptorMapper*)mapper
|
||||
withDescriptorMapper:(id<SKDescriptorMapperProtocol>)mapper
|
||||
finishWithBlock:(SKTouchFinishDelegate)finishBlock {
|
||||
if (self = [super init]) {
|
||||
_onFinish = finishBlock;
|
||||
@@ -7,7 +7,9 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class SKDescriptorMapper;
|
||||
|
||||
@interface SKApplicationDescriptor : SKNodeDescriptor<UIApplication*>
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
|
||||
#import "SKApplicationDescriptor.h"
|
||||
|
||||
#import <FlipperKitLayoutHelpers/SKHiddenWindow.h>
|
||||
#import <objc/runtime.h>
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import "SKHiddenWindow.h"
|
||||
|
||||
@implementation SKApplicationDescriptor
|
||||
|
||||
@@ -7,9 +7,10 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class UIButton;
|
||||
@class SKDescriptorMapper;
|
||||
|
||||
@interface SKButtonDescriptor : SKNodeDescriptor<UIButton*>
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
|
||||
#import "SKButtonDescriptor.h"
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import "SKObject.h"
|
||||
#import "UIColor+SKSonarValueCoder.h"
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/UIColor+SKSonarValueCoder.h>
|
||||
|
||||
@implementation SKButtonDescriptor
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class SKDescriptorMapper;
|
||||
|
||||
@interface SKScrollViewDescriptor : SKNodeDescriptor<UIScrollView*>
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
|
||||
#import "SKScrollViewDescriptor.h"
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
|
||||
@implementation SKScrollViewDescriptor
|
||||
|
||||
- (NSString*)identifierForNode:(UIScrollView*)node {
|
||||
@@ -9,7 +9,9 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class SKDescriptorMapper;
|
||||
|
||||
@interface SKViewControllerDescriptor : SKNodeDescriptor<UIViewController*>
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
|
||||
#import "SKViewControllerDescriptor.h"
|
||||
|
||||
#import "SKDescriptorMapper.h"
|
||||
|
||||
@implementation SKViewControllerDescriptor
|
||||
|
||||
- (NSString*)identifierForNode:(UIViewController*)node {
|
||||
@@ -9,7 +9,9 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "SKNodeDescriptor.h"
|
||||
#import <FlipperKitLayoutHelpers/SKNodeDescriptor.h>
|
||||
|
||||
@class SKDescriptorMapper;
|
||||
|
||||
@interface SKViewDescriptor : SKNodeDescriptor<UIView*>
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
#import "SKViewDescriptor.h"
|
||||
|
||||
#import <FlipperKitHighlightOverlay/SKHighlightOverlay.h>
|
||||
#import <FlipperKitLayoutHelpers/FlipperKitLayoutDescriptorMapperProtocol.h>
|
||||
#import <FlipperKitLayoutHelpers/SKHiddenWindow.h>
|
||||
#import <FlipperKitLayoutHelpers/SKNamed.h>
|
||||
#import <FlipperKitLayoutHelpers/SKObject.h>
|
||||
#import <FlipperKitLayoutHelpers/SKYogaKitHelper.h>
|
||||
#import <FlipperKitLayoutHelpers/UIColor+SKSonarValueCoder.h>
|
||||
#import <YogaKit/UIView+Yoga.h>
|
||||
#import "SKDescriptorMapper.h"
|
||||
#import "SKHiddenWindow.h"
|
||||
#import "SKNamed.h"
|
||||
#import "SKObject.h"
|
||||
#import "SKYogaKitHelper.h"
|
||||
#import "UIColor+SKSonarValueCoder.h"
|
||||
|
||||
@implementation SKViewDescriptor
|
||||
|
||||
@@ -30,7 +30,8 @@ static NSDictionary* YGOverflowEnumMap = nil;
|
||||
static NSDictionary* YGDisplayEnumMap = nil;
|
||||
static NSDictionary* YGUnitEnumMap = nil;
|
||||
|
||||
- (instancetype)initWithDescriptorMapper:(SKDescriptorMapper*)mapper {
|
||||
- (instancetype)initWithDescriptorMapper:
|
||||
(id<SKDescriptorMapperProtocol>)mapper {
|
||||
if (self = [super initWithDescriptorMapper:mapper]) {
|
||||
initEnumDictionaries();
|
||||
}
|
||||
Reference in New Issue
Block a user