mirror of
https://github.com/zoriya/react-native-svg.git
synced 2025-12-21 06:15:15 +00:00
Gradient supports percent value
Gradient supports percent value
This commit is contained in:
@@ -10,11 +10,16 @@ let {
|
||||
|
||||
let fillPatterns = {};
|
||||
let fillReg = /^url\(#(\w+?)\)$/;
|
||||
|
||||
function isGradient(obj) {
|
||||
return obj instanceof LinearGradient || obj instanceof RadialGradient;
|
||||
}
|
||||
|
||||
export default function (props) {
|
||||
let {fill} = props;
|
||||
|
||||
if (fill) {
|
||||
if (fill instanceof LinearGradient || fill instanceof RadialGradient) {
|
||||
if (isGradient(fill)) {
|
||||
return fill;
|
||||
}
|
||||
|
||||
@@ -22,11 +27,16 @@ export default function (props) {
|
||||
let matched = fill.match(fillReg);
|
||||
if (matched) {
|
||||
let patternName = `${matched[1]}:${props.svgId}`;
|
||||
if (fillPatterns[patternName]) {
|
||||
return fillPatterns[patternName];
|
||||
} else {
|
||||
return null;
|
||||
let pattern = fillPatterns[patternName];
|
||||
if (pattern) {
|
||||
if (typeof pattern === 'function') {
|
||||
let dimensions = this.getBoundingBox();
|
||||
return pattern(dimensions);
|
||||
} else {
|
||||
return pattern;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user