From fb9b563213568329bd1ce1c070c2854bbea25d67 Mon Sep 17 00:00:00 2001 From: Chukwuemeka Ajima Date: Fri, 10 Dec 2021 23:03:29 +0100 Subject: [PATCH] feat(ChartPath): implement chart background gradient --- README.md | 15 ++++++++----- gifs/gradient.png | Bin 0 -> 36974 bytes src/charts/linear/ChartPath.js | 37 ++++++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 gifs/gradient.png diff --git a/README.md b/README.md index 190c799..687fe32 100644 --- a/README.md +++ b/README.md @@ -115,16 +115,21 @@ This component is used for showing the path itself. | `smoothingWhileTransitioningEnabled` | `number` | `false` | Although smoothing is not complex computing, it might impact performance in some low-end devices so while having a big set of data it might be worth disable smoothing while transitioning. | | `height` | `number` | obligatory | Height od the SVG canvas | | `width` | `number` | obligatory | Width od the SVG canvas | +| `stroke` | `string` | `transparent` | Color of the path. | | `strokeWidth` | `number` | `1` | Width of the path. | | `selectedStrokeWidth` | `number` | `1` | Width of the path selected. | | `gestureEnabled` | `boolean` | `true` | Defines if interaction with the chart should be allowed or not | | `longPressGestureHandlerProps` | `object` | `{maxDist: 100000, minDurationMs: 0, shouldCancelWhenOutside: false}` | Under the hood we're using `LongPressGestureHandler` for handling interactions. It's recommended to not override its props. However, it might be useful while interacting with another GH. | | `selectedOpacity` | `number` | `0.7` | Target opacity of the path while touching the chart. -| `hitSlop` | `number` | `0` | While scrubbing the chart touching edges of the screen you may want make points on the edges more accessible. With `hitSlop` it's possible to access points on edges doubling the speed of scrubbing beyond this margin. | -| `hapticsEnabled` | `boolean` | `false` | On pressing in/out on the chart it might be expected to make haptic feedback. It will happen with `hapticsEnabled` set to `true`. | -| `springConfig` | object | `{damping: 15, mass: 1, stiffness: 600}` | Object [defining the spring animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). This spring is used for a dot's scale. -| `timingFeedbackConfig` | object | `{duration: 80}` | Object [defining the timing animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). `timingFeedbackConfig` is used for a path's opacity and width. -| `timingAnimationConfig` | object | `{duration: 300}` | Object [defining the timing animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). `timingAnimationConfig` is used for the transition between chart's data. +| `hitSlop` | `number` | `0` | While scrubbing the chart touching edges of the screen you may want make points on the edges more accessible. With `hitSlop` it's possible to access points on edges doubling the speed of scrubbing beyond this margin. | +| `hapticsEnabled` | `boolean` | `false` | On pressing in/out on the chart it might be expected to make haptic feedback. It will happen with `hapticsEnabled` set to `true`. | +| `springConfig` | object | `{damping: 15, mass: 1, stiffness: 600}` | Object [defining the spring animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). This spring is used for a dot's scale. | +| `timingFeedbackConfig` | object | `{duration: 80}` | Object [defining the timing animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). `timingFeedbackConfig` is used for a path's opacity and width. | +| `timingAnimationConfig` | object | `{duration: 300}` | Object [defining the timing animation](https://docs.swmansion.com/react-native-reanimated/docs/next/animations). `timingAnimationConfig` is used for the transition between chart's data. | +| `gradientEnabled` | `boolean` | `false` | Specify if background gradient should be enabled for the path under the chart, if not provided it defaults to `false` | +| `backgroundGradientFrom` | `string` | `stroke` | Start color of the chart path background gradient, if a value is not provided for this prop, it defaults to the stroke color, and if no stroke color is specified, it defaults to `#000000` | +| `backgroundGradientTo` | `string` | `#FFFFFF` | Stop color of the chart path background gradient, if a value is not provided for this prop, it defaults to `#FFFFFF` | +| `stopOpacity` | `number` | `0` | Opacity of the path background gradient stop color. Defaults to `0` if not provided. | | ...rest | `object` | `{}` | Props applied to SVG [Path](https://github.com/react-native-community/react-native-svg#path). | diff --git a/gifs/gradient.png b/gifs/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..17d63c789adeb7bedca105f8a404acab1edf5fbf GIT binary patch literal 36974 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 DC;(-D literal 0 HcmV?d00001 diff --git a/src/charts/linear/ChartPath.js b/src/charts/linear/ChartPath.js index 4ad6746..8111573 100644 --- a/src/charts/linear/ChartPath.js +++ b/src/charts/linear/ChartPath.js @@ -17,7 +17,13 @@ import Animated, { withSpring, withTiming, } from 'react-native-reanimated'; -import { Path, Svg } from 'react-native-svg'; +import { + Path, + Svg, + Defs, + Stop, + LinearGradient +} from 'react-native-svg'; import ChartContext, { useGenerateValues as generateValues, @@ -673,6 +679,16 @@ function ChartPath({ return props; }, []); + const gradientAnimatedProps = useAnimatedStyle(() => { + const pathValue = path.value.replace('M', 'L'); + const gradientD = pathValue.length > 0 ? `M 0,${height} C 0,0 0,0 0,0 ${pathValue} L ${width},${height}` : ''; + const props = { + d: gradientD, + + }; + return props; + }, []); + const animatedStyle = useAnimatedStyle(() => { return { opacity: pathOpacity.value * (1 - selectedOpacity) + selectedOpacity, @@ -683,6 +699,7 @@ function ChartPath({ + + { + props.gradientEnabled && + + + + + + + }