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:
Ivan Misuno
2023-07-21 14:32:22 -07:00
committed by Facebook GitHub Bot
parent b22ac16c3c
commit 1753581028
5 changed files with 74 additions and 57 deletions

View File

@@ -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

View File

@@ -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;
}