react-native-wagmi-charts 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -405,7 +405,7 @@ To achieve this, simply add `<LineChart.HoverTrap />` as the child of your curso
405
405
  <LineChart.Provider data={data}>
406
406
  <LineChart>
407
407
  <LineChart.Path color="hotpink" />
408
- <LineChart.CursorCrosshair color="hotpink" >
408
+ <LineChart.CursorCrosshair color="hotpink">
409
409
  <LineChart.HoverTrap />
410
410
  </LineChart.CursorCrosshair>
411
411
  </LineChart>
package/example/README.md CHANGED
@@ -2,23 +2,31 @@
2
2
 
3
3
  ## Getting Started
4
4
 
5
- First install project dependencies in this directory:
5
+ First install project dependencies in this directory (`yarn` is recommended):
6
6
 
7
- `npm install`
7
+ ```bash
8
+ yarn install
9
+ ```
8
10
 
9
11
  After dependencies are installed, you can go ahead and run the project on either a simulator, or a real device using the following commands
10
12
 
11
13
  For iOS:
12
14
 
13
- `npm run ios`
15
+ ```bash
16
+ yarn run ios
17
+ ```
14
18
 
15
19
  For Android:
16
20
 
17
- `npm run android`
21
+ ```bash
22
+ yarn run android
23
+ ```
18
24
 
19
25
  For Web:
20
26
 
21
- `npm run web`
27
+ ```bash
28
+ yarn run web
29
+ ```
22
30
 
23
31
 
24
32
  ## Example Charts
@@ -29,4 +37,5 @@ The following charts are included:
29
37
  - Line Chart
30
38
 
31
39
  ### Sample Data
40
+
32
41
  The charts in this example use hardcoded data, which is stored in the `src/data` directory
@@ -51,6 +51,7 @@ export default function App() {
51
51
 
52
52
  const [toggleMinMaxLabels, setToggleMinMaxLabels] = React.useState(false);
53
53
  const [toggleSnapToPoint, setToggleSnapToPoint] = React.useState(false);
54
+ const [toggleHighlight, setToggleHighlight] = React.useState(false);
54
55
 
55
56
  let dataProp: TLineChartDataProp = data;
56
57
  const [min, max] = useMemo(() => {
@@ -68,25 +69,22 @@ export default function App() {
68
69
 
69
70
  let chart = (
70
71
  <LineChart>
71
- {!toggleMinMaxLabels && <LineChart.Path color="black" />}
72
- {toggleMinMaxLabels && (
73
- <LineChart.Path color="black">
74
- <LineChart.Gradient color="black" />
75
- <LineChart.Tooltip position="top" at={max} />
76
- <LineChart.Tooltip position="bottom" at={min} yGutter={-10} />
77
- </LineChart.Path>
78
- )}
79
- {/* <LineChart.Path color="black">
80
- <LineChart.Gradient color="black" />
81
- <LineChart.HorizontalLine at={{ index: 0 }} />
82
- <LineChart.Highlight color="red" from={10} to={15} />
83
- <LineChart.Dot color="red" at={10} />
84
- <LineChart.Dot color="red" at={15} />
85
- {partialDay && (
86
- <LineChart.Dot at={data.length - 1} color="red" hasPulse />
72
+ <LineChart.Path color="black">
73
+ {toggleMinMaxLabels && (
74
+ <>
75
+ <LineChart.Gradient color="black" />
76
+ <LineChart.Tooltip position="top" at={max} />
77
+ <LineChart.Tooltip position="bottom" at={min} yGutter={-10} />
78
+ </>
79
+ )}
80
+ {toggleHighlight && (
81
+ <LineChart.Highlight
82
+ color="red"
83
+ from={Math.floor(data.length / 3)}
84
+ to={Math.floor(data.length * (2/3))}
85
+ />
87
86
  )}
88
87
  </LineChart.Path>
89
- */}
90
88
  <LineChart.CursorCrosshair
91
89
  snapToPoint={toggleSnapToPoint}
92
90
  onActivated={invokeHaptic}
@@ -200,6 +198,9 @@ export default function App() {
200
198
  </Button>
201
199
  <Button onPress={toggleMultiData}>{`Multi Data`}</Button>
202
200
  <Button onPress={togglePartialDay}>{`Partial Day`}</Button>
201
+ <Button onPress={() => setToggleHighlight((val) => !val)}>
202
+ Toggle highlight
203
+ </Button>
203
204
  <Button
204
205
  onPress={() => setToggleMinMaxLabels((p) => !p)}
205
206
  >{`Toggle min/max labels`}</Button>
@@ -10,8 +10,7 @@ var _reactNativeSvg = require("react-native-svg");
10
10
  var _Chart = require("./Chart");
11
11
  var _LineChartPathContext = require("./LineChartPathContext");
12
12
  var _useAnimatedPath = _interopRequireDefault(require("./useAnimatedPath"));
13
- var _useLineChart = require("./useLineChart");
14
- var _utils = require("./utils");
13
+ var _getXPositionForCurve = require("./utils/getXPositionForCurve");
15
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -28,14 +27,9 @@ function LineChartHighlight({
28
27
  ...props
29
28
  }) {
30
29
  const {
31
- data,
32
- yDomain
33
- } = (0, _useLineChart.useLineChart)();
34
- const {
35
- pathWidth,
36
- height,
37
- gutter,
38
- shape
30
+ path,
31
+ parsedPath,
32
+ height
39
33
  } = React.useContext(_Chart.LineChartDimensionsContext);
40
34
  const {
41
35
  isTransitionEnabled,
@@ -45,21 +39,6 @@ function LineChartHighlight({
45
39
 
46
40
  ////////////////////////////////////////////////
47
41
 
48
- const path = React.useMemo(() => {
49
- if (data && data.length > 0) {
50
- return (0, _utils.getPath)({
51
- data,
52
- from,
53
- to,
54
- width: pathWidth,
55
- height,
56
- gutter,
57
- shape,
58
- yDomain
59
- });
60
- }
61
- return '';
62
- }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);
63
42
  const {
64
43
  animatedProps
65
44
  } = (0, _useAnimatedPath.default)({
@@ -69,7 +48,18 @@ function LineChartHighlight({
69
48
 
70
49
  ////////////////////////////////////////////////
71
50
 
72
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
51
+ const clipStart = (0, _getXPositionForCurve.getXPositionForCurve)(parsedPath, from);
52
+ const clipEnd = (0, _getXPositionForCurve.getXPositionForCurve)(parsedPath, to);
53
+ return /*#__PURE__*/React.createElement(_reactNativeSvg.G, null, /*#__PURE__*/React.createElement(_reactNativeSvg.Defs, null, /*#__PURE__*/React.createElement(_reactNativeSvg.ClipPath, {
54
+ id: "clip"
55
+ }, /*#__PURE__*/React.createElement(_reactNativeSvg.Rect, {
56
+ x: clipStart,
57
+ y: "0",
58
+ width: clipEnd - clipStart,
59
+ height: height,
60
+ fill: "white"
61
+ }))), /*#__PURE__*/React.createElement(AnimatedPath, _extends({
62
+ clipPath: "url(#clip)",
73
63
  animatedProps: animatedProps,
74
64
  fill: "transparent",
75
65
  stroke: isInactive ? inactiveColor || color : color,
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNativeReanimated","_interopRequireDefault","_reactNativeSvg","_Chart","_LineChartPathContext","_useAnimatedPath","_useLineChart","_utils","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","AnimatedPath","Animated","createAnimatedComponent","Path","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","data","yDomain","useLineChart","pathWidth","height","gutter","shape","useContext","LineChartDimensionsContext","isTransitionEnabled","isInactive","_isInactive","LineChartPathContext","path","useMemo","getPath","animatedProps","useAnimatedPath","enabled","createElement","Fragment","fill","stroke","strokeOpacity"],"sourceRoot":"../../../../src","sources":["charts/line/Highlight.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNativeReanimated","_interopRequireDefault","_reactNativeSvg","_Chart","_LineChartPathContext","_useAnimatedPath","_getXPositionForCurve","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","AnimatedPath","Animated","createAnimatedComponent","Path","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","path","parsedPath","height","useContext","LineChartDimensionsContext","isTransitionEnabled","isInactive","_isInactive","LineChartPathContext","animatedProps","useAnimatedPath","enabled","clipStart","getXPositionForCurve","clipEnd","createElement","G","Defs","ClipPath","id","Rect","x","y","fill","clipPath","stroke","strokeOpacity"],"sourceRoot":"../../../../src","sources":["charts/line/Highlight.tsx"],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
  import * as React from 'react';
3
3
  import Animated from 'react-native-reanimated';
4
- import { Path } from 'react-native-svg';
4
+ import { ClipPath, Defs, G, Path, Rect } from 'react-native-svg';
5
5
  import { LineChartDimensionsContext } from './Chart';
6
6
  import { LineChartPathContext } from './LineChartPathContext';
7
7
  import useAnimatedPath from './useAnimatedPath';
8
- import { useLineChart } from './useLineChart';
9
- import { getPath } from './utils';
8
+ import { getXPositionForCurve } from './utils/getXPositionForCurve';
10
9
  const AnimatedPath = Animated.createAnimatedComponent(Path);
11
10
  LineChartHighlight.displayName = 'LineChartHighlight';
12
11
  export function LineChartHighlight({
@@ -19,14 +18,9 @@ export function LineChartHighlight({
19
18
  ...props
20
19
  }) {
21
20
  const {
22
- data,
23
- yDomain
24
- } = useLineChart();
25
- const {
26
- pathWidth,
27
- height,
28
- gutter,
29
- shape
21
+ path,
22
+ parsedPath,
23
+ height
30
24
  } = React.useContext(LineChartDimensionsContext);
31
25
  const {
32
26
  isTransitionEnabled,
@@ -36,21 +30,6 @@ export function LineChartHighlight({
36
30
 
37
31
  ////////////////////////////////////////////////
38
32
 
39
- const path = React.useMemo(() => {
40
- if (data && data.length > 0) {
41
- return getPath({
42
- data,
43
- from,
44
- to,
45
- width: pathWidth,
46
- height,
47
- gutter,
48
- shape,
49
- yDomain
50
- });
51
- }
52
- return '';
53
- }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);
54
33
  const {
55
34
  animatedProps
56
35
  } = useAnimatedPath({
@@ -60,7 +39,18 @@ export function LineChartHighlight({
60
39
 
61
40
  ////////////////////////////////////////////////
62
41
 
63
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
42
+ const clipStart = getXPositionForCurve(parsedPath, from);
43
+ const clipEnd = getXPositionForCurve(parsedPath, to);
44
+ return /*#__PURE__*/React.createElement(G, null, /*#__PURE__*/React.createElement(Defs, null, /*#__PURE__*/React.createElement(ClipPath, {
45
+ id: "clip"
46
+ }, /*#__PURE__*/React.createElement(Rect, {
47
+ x: clipStart,
48
+ y: "0",
49
+ width: clipEnd - clipStart,
50
+ height: height,
51
+ fill: "white"
52
+ }))), /*#__PURE__*/React.createElement(AnimatedPath, _extends({
53
+ clipPath: "url(#clip)",
64
54
  animatedProps: animatedProps,
65
55
  fill: "transparent",
66
56
  stroke: isInactive ? inactiveColor || color : color,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Path","LineChartDimensionsContext","LineChartPathContext","useAnimatedPath","useLineChart","getPath","AnimatedPath","createAnimatedComponent","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","data","yDomain","pathWidth","height","gutter","shape","useContext","isTransitionEnabled","isInactive","_isInactive","path","useMemo","length","animatedProps","enabled","createElement","Fragment","_extends","fill","stroke","strokeOpacity"],"sourceRoot":"../../../../src","sources":["charts/line/Highlight.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,IAAI,QAAmB,kBAAkB;AAElD,SAASC,0BAA0B,QAAQ,SAAS;AACpD,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,OAAO,QAAQ,SAAS;AAEjC,MAAMC,YAAY,GAAGP,QAAQ,CAACQ,uBAAuB,CAACP,IAAI,CAAC;AAW3DQ,kBAAkB,CAACC,WAAW,GAAG,oBAAoB;AAErD,OAAO,SAASD,kBAAkBA,CAAC;EACjCE,KAAK,GAAG,OAAO;EACfC,aAAa;EACbC,iBAAiB,GAAG,IAAI;EACxBC,IAAI;EACJC,EAAE;EACFC,KAAK,EAAEC,WAAW,GAAG,CAAC;EACtB,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGf,YAAY,CAAC,CAAC;EACxC,MAAM;IAAEgB,SAAS;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGzB,KAAK,CAAC0B,UAAU,CAC3DvB,0BACF,CAAC;EACD,MAAM;IAAEwB,mBAAmB;IAAEC,UAAU,EAAEC;EAAY,CAAC,GACpD7B,KAAK,CAAC0B,UAAU,CAACtB,oBAAoB,CAAC;EACxC,MAAMwB,UAAU,GAAGd,iBAAiB,IAAIe,WAAW;;EAEnD;;EAEA,MAAMC,IAAI,GAAG9B,KAAK,CAAC+B,OAAO,CAAC,MAAM;IAC/B,IAAIX,IAAI,IAAIA,IAAI,CAACY,MAAM,GAAG,CAAC,EAAE;MAC3B,OAAOzB,OAAO,CAAC;QACba,IAAI;QACJL,IAAI;QACJC,EAAE;QACFC,KAAK,EAAEK,SAAS;QAChBC,MAAM;QACNC,MAAM;QACNC,KAAK;QACLJ;MACF,CAAC,CAAC;IACJ;IACA,OAAO,EAAE;EACX,CAAC,EAAE,CAACD,IAAI,EAAEL,IAAI,EAAEC,EAAE,EAAEM,SAAS,EAAEC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEJ,OAAO,CAAC,CAAC;EAE/D,MAAM;IAAEY;EAAc,CAAC,GAAG5B,eAAe,CAAC;IACxC6B,OAAO,EAAEP,mBAAmB;IAC5BG;EACF,CAAC,CAAC;;EAEF;;EAEA,oBACE9B,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAoC,QAAA,qBACEpC,KAAA,CAAAmC,aAAA,CAAC3B,YAAY,EAAA6B,QAAA;IACXJ,aAAa,EAAEA,aAAc;IAC7BK,IAAI,EAAC,aAAa;IAClBC,MAAM,EAAEX,UAAU,GAAGf,aAAa,IAAID,KAAK,GAAGA,KAAM;IACpDM,WAAW,EAAEA,WAAY;IACzBsB,aAAa,EAAEZ,UAAU,IAAI,CAACf,aAAa,GAAG,GAAG,GAAG;EAAE,GAClDM,KAAK,CACV,CACD,CAAC;AAEP"}
1
+ {"version":3,"names":["React","Animated","ClipPath","Defs","G","Path","Rect","LineChartDimensionsContext","LineChartPathContext","useAnimatedPath","getXPositionForCurve","AnimatedPath","createAnimatedComponent","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","path","parsedPath","height","useContext","isTransitionEnabled","isInactive","_isInactive","animatedProps","enabled","clipStart","clipEnd","createElement","id","x","y","fill","_extends","clipPath","stroke","strokeOpacity"],"sourceRoot":"../../../../src","sources":["charts/line/Highlight.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,IAAI,EAAEC,CAAC,EAAEC,IAAI,EAAaC,IAAI,QAAQ,kBAAkB;AAE3E,SAASC,0BAA0B,QAAQ,SAAS;AACpD,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,SAASC,oBAAoB,QAAQ,8BAA8B;AAEnE,MAAMC,YAAY,GAAGV,QAAQ,CAACW,uBAAuB,CAACP,IAAI,CAAC;AAW3DQ,kBAAkB,CAACC,WAAW,GAAG,oBAAoB;AAErD,OAAO,SAASD,kBAAkBA,CAAC;EACjCE,KAAK,GAAG,OAAO;EACfC,aAAa;EACbC,iBAAiB,GAAG,IAAI;EACxBC,IAAI;EACJC,EAAE;EACFC,KAAK,EAAEC,WAAW,GAAG,CAAC;EACtB,GAAGC;AACgB,CAAC,EAAE;EACtB,MAAM;IAAEC,IAAI;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAGzB,KAAK,CAAC0B,UAAU,CACnDnB,0BACF,CAAC;EACD,MAAM;IAAEoB,mBAAmB;IAAEC,UAAU,EAAEC;EAAY,CAAC,GACpD7B,KAAK,CAAC0B,UAAU,CAAClB,oBAAoB,CAAC;EACxC,MAAMoB,UAAU,GAAGX,iBAAiB,IAAIY,WAAW;;EAEnD;;EAEA,MAAM;IAAEC;EAAc,CAAC,GAAGrB,eAAe,CAAC;IACxCsB,OAAO,EAAEJ,mBAAmB;IAC5BJ;EACF,CAAC,CAAC;;EAEF;;EAEA,MAAMS,SAAS,GAAGtB,oBAAoB,CAACc,UAAU,EAAEN,IAAI,CAAC;EACxD,MAAMe,OAAO,GAAGvB,oBAAoB,CAACc,UAAU,EAAEL,EAAE,CAAC;EAEpD,oBACEnB,KAAA,CAAAkC,aAAA,CAAC9B,CAAC,qBACAJ,KAAA,CAAAkC,aAAA,CAAC/B,IAAI,qBACHH,KAAA,CAAAkC,aAAA,CAAChC,QAAQ;IAACiC,EAAE,EAAC;EAAM,gBACjBnC,KAAA,CAAAkC,aAAA,CAAC5B,IAAI;IACH8B,CAAC,EAAEJ,SAAU;IACbK,CAAC,EAAC,GAAG;IACLjB,KAAK,EAAEa,OAAO,GAAGD,SAAU;IAC3BP,MAAM,EAAEA,MAAO;IACfa,IAAI,EAAC;EAAO,CACb,CACO,CACN,CAAC,eACPtC,KAAA,CAAAkC,aAAA,CAACvB,YAAY,EAAA4B,QAAA;IACXC,QAAQ,EAAC,YAAY;IACrBV,aAAa,EAAEA,aAAc;IAC7BQ,IAAI,EAAC,aAAa;IAClBG,MAAM,EAAEb,UAAU,GAAGZ,aAAa,IAAID,KAAK,GAAGA,KAAM;IACpDM,WAAW,EAAEA,WAAY;IACzBqB,aAAa,EAAEd,UAAU,IAAI,CAACZ,aAAa,GAAG,GAAG,GAAG;EAAE,GAClDM,KAAK,CACV,CACA,CAAC;AAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../example/src/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,CAAC,OAAO,UAAU,GAAG,sBAoP1B"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../example/src/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,CAAC,OAAO,UAAU,GAAG,sBAqP1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Highlight.d.ts","sourceRoot":"","sources":["../../../../../src/charts/line/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAQ,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAUnD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,kBAAkB,CAAC,EACjC,KAAe,EACf,aAAa,EACb,iBAAwB,EACxB,IAAI,EACJ,EAAE,EACF,KAAK,EAAE,WAAe,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,qBA8CrB;yBAtDe,kBAAkB"}
1
+ {"version":3,"file":"Highlight.d.ts","sourceRoot":"","sources":["../../../../../src/charts/line/Highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAA2B,SAAS,EAAQ,MAAM,kBAAkB,CAAC;AAS5E,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,kBAAkB,CAAC,EACjC,KAAe,EACf,aAAa,EACb,iBAAwB,EACxB,IAAI,EACJ,EAAE,EACF,KAAK,EAAE,WAAe,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,qBA4CrB;yBApDe,kBAAkB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-wagmi-charts",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "A sweet candlestick chart for React Native",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -1,12 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import Animated from 'react-native-reanimated';
3
- import { Path, PathProps } from 'react-native-svg';
3
+ import { ClipPath, Defs, G, Path, PathProps, Rect } from 'react-native-svg';
4
4
 
5
5
  import { LineChartDimensionsContext } from './Chart';
6
6
  import { LineChartPathContext } from './LineChartPathContext';
7
7
  import useAnimatedPath from './useAnimatedPath';
8
- import { useLineChart } from './useLineChart';
9
- import { getPath } from './utils';
8
+ import { getXPositionForCurve } from './utils/getXPositionForCurve';
10
9
 
11
10
  const AnimatedPath = Animated.createAnimatedComponent(Path);
12
11
 
@@ -30,8 +29,7 @@ export function LineChartHighlight({
30
29
  width: strokeWidth = 3,
31
30
  ...props
32
31
  }: LineChartColorProps) {
33
- const { data, yDomain } = useLineChart();
34
- const { pathWidth, height, gutter, shape } = React.useContext(
32
+ const { path, parsedPath, height } = React.useContext(
35
33
  LineChartDimensionsContext
36
34
  );
37
35
  const { isTransitionEnabled, isInactive: _isInactive } =
@@ -40,22 +38,6 @@ export function LineChartHighlight({
40
38
 
41
39
  ////////////////////////////////////////////////
42
40
 
43
- const path = React.useMemo(() => {
44
- if (data && data.length > 0) {
45
- return getPath({
46
- data,
47
- from,
48
- to,
49
- width: pathWidth,
50
- height,
51
- gutter,
52
- shape,
53
- yDomain,
54
- });
55
- }
56
- return '';
57
- }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);
58
-
59
41
  const { animatedProps } = useAnimatedPath({
60
42
  enabled: isTransitionEnabled,
61
43
  path,
@@ -63,9 +45,24 @@ export function LineChartHighlight({
63
45
 
64
46
  ////////////////////////////////////////////////
65
47
 
48
+ const clipStart = getXPositionForCurve(parsedPath, from);
49
+ const clipEnd = getXPositionForCurve(parsedPath, to);
50
+
66
51
  return (
67
- <>
52
+ <G>
53
+ <Defs>
54
+ <ClipPath id="clip">
55
+ <Rect
56
+ x={clipStart}
57
+ y="0"
58
+ width={clipEnd - clipStart}
59
+ height={height}
60
+ fill="white"
61
+ />
62
+ </ClipPath>
63
+ </Defs>
68
64
  <AnimatedPath
65
+ clipPath="url(#clip)"
69
66
  animatedProps={animatedProps}
70
67
  fill="transparent"
71
68
  stroke={isInactive ? inactiveColor || color : color}
@@ -73,6 +70,6 @@ export function LineChartHighlight({
73
70
  strokeOpacity={isInactive && !inactiveColor ? 0.5 : 1}
74
71
  {...props}
75
72
  />
76
- </>
73
+ </G>
77
74
  );
78
75
  }