From 1eaf3a60c52eefa40a803436359d915ee3d2cec2 Mon Sep 17 00:00:00 2001 From: Mikael Sand Date: Wed, 25 Sep 2019 16:46:05 +0300 Subject: [PATCH] fix: handling of color/tintColor, fixes #1088 and #1115 --- android/src/main/java/com/horcrux/svg/SvgView.java | 2 +- android/src/main/java/com/horcrux/svg/SvgViewManager.java | 4 ++-- src/elements/Svg.tsx | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/horcrux/svg/SvgView.java b/android/src/main/java/com/horcrux/svg/SvgView.java index 8c3bc2e9..a90e4f4c 100644 --- a/android/src/main/java/com/horcrux/svg/SvgView.java +++ b/android/src/main/java/com/horcrux/svg/SvgView.java @@ -169,7 +169,7 @@ public class SvgView extends ReactViewGroup implements ReactCompoundView, ReactC } } - @ReactProp(name = "tintColor", customType = "Color") + @ReactProp(name = "tintColor") public void setTintColor(@Nullable Integer tintColor) { if (tintColor == null) { mTintColor = 0; diff --git a/android/src/main/java/com/horcrux/svg/SvgViewManager.java b/android/src/main/java/com/horcrux/svg/SvgViewManager.java index 27dd31ef..20d248f9 100644 --- a/android/src/main/java/com/horcrux/svg/SvgViewManager.java +++ b/android/src/main/java/com/horcrux/svg/SvgViewManager.java @@ -77,12 +77,12 @@ class SvgViewManager extends ReactViewManager { return true; } - @ReactProp(name = "tintColor", customType = "Color") + @ReactProp(name = "tintColor") public void setTintColor(SvgView node, @Nullable Integer tintColor) { node.setTintColor(tintColor); } - @ReactProp(name = "color", customType = "Color") + @ReactProp(name = "color") public void setColor(SvgView node, @Nullable Integer color) { node.setTintColor(color); } diff --git a/src/elements/Svg.tsx b/src/elements/Svg.tsx index 984ced1b..fa9a244c 100644 --- a/src/elements/Svg.tsx +++ b/src/elements/Svg.tsx @@ -9,6 +9,7 @@ import { MeasureInWindowOnSuccessCallback, } from 'react-native'; import { + Color, ClipProps, FillProps, NumberProp, @@ -19,6 +20,7 @@ import { } from '../lib/extract/types'; import extractResponder from '../lib/extract/extractResponder'; import extractViewBox from '../lib/extract/extractViewBox'; +import extractColor from '../lib/extract/extractColor'; import Shape from './Shape'; import G from './G'; @@ -33,6 +35,7 @@ const styles = StyleSheet.create({ export default class Svg extends Shape< { + color?: Color; style?: [] | {}; viewBox?: string; opacity?: NumberProp; @@ -148,12 +151,14 @@ export default class Svg extends Shape< } : null; + const tint = extractColor(color); return (