Add metadata.customAttributes field
Summary: `customAttributes` will be used by the UI Debugger to pass styleID for Bloks model attributes. (replicating corresponding [Android implementation](https://www.internalfb.com/code/fbsource/[33c33fa7f582]/xplat/sonar/android/src/facebook/java/com/facebook/flipper/uidebugger/bloks/descriptors/BloksDebugComponentDescriptor.kt?lines=138-139%2C170-171)) Reviewed By: antonk52 Differential Revision: D47494013 fbshipit-source-id: 257387d4af94235b23d636047326532d7071e8dd
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b22ac16c3c
commit
1753581028
@@ -26,7 +26,15 @@ FOUNDATION_EXPORT NSString* const UIDEBUGGER_METADATA_TYPE_DOCUMENTATION;
|
||||
- (UIDMetadataId)registerMetadataWithType:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
definedBy:(UIDMetadataId)definedById;
|
||||
definedBy:(UIDMetadataId)parent;
|
||||
|
||||
- (UIDMetadataId)registerMetadataWithType:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
definedBy:(UIDMetadataId)parent
|
||||
customAttributes:
|
||||
(nullable NSDictionary<NSString*, id>*)
|
||||
customAttributes;
|
||||
|
||||
- (NSDictionary<UIDMetadataId, UIDMetadata*>*)extractPendingMetadata;
|
||||
|
||||
|
||||
@@ -65,12 +65,34 @@ typedef NSMutableDictionary<NSString*, UIDMetadata*>* UIDNamedMetadata;
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
definedBy:(UIDMetadataId)parent {
|
||||
return [self registerMetadataWithType:type
|
||||
name:name
|
||||
isMutable:isMutable
|
||||
definedBy:parent
|
||||
customAttributes:nil];
|
||||
}
|
||||
|
||||
- (UIDMetadataId)registerMetadataWithType:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
definedBy:(UIDMetadataId)parent
|
||||
customAttributes:
|
||||
(nullable NSDictionary<NSString*, id>*)
|
||||
customAttributes {
|
||||
if (!parent) {
|
||||
parent = _rootId;
|
||||
}
|
||||
|
||||
UIDMetadataId identifier = @(++_generator);
|
||||
UIDMetadata* metadata = [[UIDMetadata alloc] initWithIdentifier:identifier
|
||||
type:type
|
||||
name:name
|
||||
isMutable:isMutable
|
||||
parent:parent];
|
||||
UIDMetadata* metadata =
|
||||
[[UIDMetadata alloc] initWithIdentifier:identifier
|
||||
type:type
|
||||
name:name
|
||||
isMutable:isMutable
|
||||
parent:parent
|
||||
possibleValues:nil
|
||||
tags:nil
|
||||
customAttributes:customAttributes];
|
||||
|
||||
[_lock lock];
|
||||
if (![_register objectForKey:parent]) {
|
||||
|
||||
@@ -23,32 +23,33 @@ typedef NSNumber* UIDMetadataId;
|
||||
*/
|
||||
@interface UIDMetadata : NSObject
|
||||
|
||||
#pragma mark - Included in the wire protocol
|
||||
|
||||
@property(nonatomic, readonly) UIDMetadataId identifier;
|
||||
@property(nonatomic, strong, readonly) NSString* type;
|
||||
@property(nonatomic, readonly) UIDMetadataId parent;
|
||||
@property(nonatomic, strong, readonly) NSString* name;
|
||||
@property(nonatomic, readonly) bool isMutable;
|
||||
@property(nonatomic, strong, readonly)
|
||||
@property(nonatomic, readonly, nullable)
|
||||
NSDictionary<NSString*, id>* customAttributes;
|
||||
|
||||
#pragma mark - Not included in the wire protocol
|
||||
|
||||
@property(nonatomic, readonly) UIDMetadataId parent;
|
||||
@property(nonatomic, strong, readonly, nullable)
|
||||
NSSet<UIDInspectableValue*>* possibleValues;
|
||||
@property(nonatomic, strong, readonly) NSSet<NSString*>* tags;
|
||||
@property(nonatomic, strong, readonly, nullable) NSSet<NSString*>* tags;
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name;
|
||||
#pragma mark -
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
parent:(UIDMetadataId)parent;
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
parent:(UIDMetadataId)parent
|
||||
possibleValues:(NSSet<UIDInspectableValue*>*)possibleValues
|
||||
tags:(NSSet<NSString*>*)tags;
|
||||
- (instancetype)
|
||||
initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
parent:(UIDMetadataId)parent
|
||||
possibleValues:(nullable NSSet<UIDInspectableValue*>*)possibleValues
|
||||
tags:(nullable NSSet<NSString*>*)tags
|
||||
customAttributes:(nullable NSDictionary<NSString*, id>*)customAttributes;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -12,48 +12,25 @@
|
||||
|
||||
@implementation UIDMetadata
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name {
|
||||
return [self initWithIdentifier:identifier
|
||||
type:type
|
||||
name:name
|
||||
isMutable:false
|
||||
parent:@0
|
||||
possibleValues:[NSSet set]
|
||||
tags:[NSSet set]];
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
parent:(UIDMetadataId)parent {
|
||||
return [self initWithIdentifier:identifier
|
||||
type:type
|
||||
name:name
|
||||
isMutable:isMutable
|
||||
parent:parent
|
||||
possibleValues:[NSSet set]
|
||||
tags:[NSSet set]];
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(UIDMetadataId)identifier
|
||||
type:(NSString*)type
|
||||
name:(NSString*)name
|
||||
isMutable:(bool)isMutable
|
||||
parent:(UIDMetadataId)parent
|
||||
possibleValues:(NSSet<UIDInspectableValue*>*)possibleValues
|
||||
tags:(NSSet<NSString*>*)tags {
|
||||
tags:(NSSet<NSString*>*)tags
|
||||
customAttributes:
|
||||
(nullable NSDictionary<NSString*, id>*)customAttributes {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_identifier = identifier;
|
||||
_type = type;
|
||||
_name = name;
|
||||
_isMutable = isMutable;
|
||||
_parent = parent;
|
||||
_possibleValues = possibleValues;
|
||||
_tags = tags;
|
||||
_parent = parent ?: @0;
|
||||
_possibleValues = possibleValues ?: [NSSet set];
|
||||
_tags = tags ?: [NSSet set];
|
||||
_customAttributes = customAttributes;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#if FB_SONARKIT_ENABLED
|
||||
|
||||
#import "NSDictionary+Foundation.h"
|
||||
#import "NSSet+Foundation.h"
|
||||
#import "UIDMetadata+Foundation.h"
|
||||
|
||||
@@ -14,12 +15,20 @@ FB_LINKABLE(UIDMetadata_Foundation)
|
||||
@implementation UIDMetadata (Foundation)
|
||||
|
||||
- (id)toFoundation {
|
||||
return @{
|
||||
NSMutableDictionary* result = [NSMutableDictionary dictionary];
|
||||
|
||||
[result addEntriesFromDictionary:@{
|
||||
@"id" : self.identifier,
|
||||
@"type" : self.type,
|
||||
@"name" : self.name,
|
||||
@"mutable" : [NSNumber numberWithBool:self.isMutable],
|
||||
};
|
||||
}];
|
||||
|
||||
if (self.customAttributes != nil) {
|
||||
result[@"customAttributes"] = [self.customAttributes toFoundation];
|
||||
}
|
||||
|
||||
return [result copy];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user