mirror of
https://github.com/zoriya/react-native-svg.git
synced 2025-12-05 22:56:11 +00:00
# Summary Fixes #2520 When an element uses `currentColor`, it should look for color in its caller, not in its parent. Example: ```svg <Svg width="100" height="100" viewBox="0 0 100 100" color="red"> <Defs color="blue"> <G color="green"> <Rect id="a" x="0" y="0" width="50" height="50" fill="currentColor"/> </G> </Defs> <G color="pink"> <Use href="#a"/> <!-- #1 --> </G> <Use href="#a" transform="translate(25 25)"/> <!-- #2 --> <G color="green"> <Use href="#a" transform="translate(50 50)"/> <!-- #3 --> </G> </Svg> ``` * `#1` should be **pink** * `#2` should be **red** * `#3` should be **green**  ## Test Plan Example app -> test -> Test2520 ## Compatibility | OS | Implemented | | ------- | :---------: | | iOS | ✅ | | MacOS | ✅ | | Android | ✅ |
52 lines
1.6 KiB
Objective-C
52 lines
1.6 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Horcrux.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the MIT-style license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "RNSVGUIKit.h"
|
|
|
|
#import "RNSVGBrush.h"
|
|
#import "RNSVGCGFCRule.h"
|
|
#import "RNSVGLength.h"
|
|
#import "RNSVGNode.h"
|
|
#import "RNSVGVectorEffect.h"
|
|
|
|
@interface RNSVGRenderable : RNSVGNode
|
|
|
|
@property (class) RNSVGRenderable *contextElement;
|
|
@property (nonatomic, strong) RNSVGColor *color;
|
|
@property (nonatomic, strong) RNSVGBrush *fill;
|
|
@property (nonatomic, assign) CGFloat fillOpacity;
|
|
@property (nonatomic, assign) RNSVGCGFCRule fillRule;
|
|
@property (nonatomic, strong) RNSVGBrush *stroke;
|
|
@property (nonatomic, assign) CGFloat strokeOpacity;
|
|
@property (nonatomic, strong) RNSVGLength *strokeWidth;
|
|
@property (nonatomic, assign) CGLineCap strokeLinecap;
|
|
@property (nonatomic, assign) CGLineJoin strokeLinejoin;
|
|
@property (nonatomic, assign) CGFloat strokeMiterlimit;
|
|
@property (nonatomic, strong) NSArray<RNSVGLength *> *strokeDasharray;
|
|
@property (nonatomic, assign) CGFloat strokeDashoffset;
|
|
@property (nonatomic, assign) RNSVGVectorEffect vectorEffect;
|
|
@property (nonatomic, copy) NSArray<NSString *> *propList;
|
|
@property (nonatomic, assign) CGPathRef hitArea;
|
|
@property (nonatomic, strong) NSString *filter;
|
|
|
|
- (void)setColor:(RNSVGColor *)color;
|
|
|
|
- (void)setHitArea:(CGPathRef)path;
|
|
|
|
- (NSArray<NSString *> *)getAttributeList;
|
|
|
|
- (void)mergeProperties:(__kindof RNSVGRenderable *)target;
|
|
|
|
- (void)resetProperties;
|
|
|
|
- (CGColor *)getCurrentColor;
|
|
|
|
@end
|