From ee906f41b31653d0533473e45cb8170ddc58800b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Benitte?= Date: Fri, 13 Dec 2019 07:52:41 +0900 Subject: [PATCH] feat(bump): add active/inactive state to points --- packages/bump/src/bump/Point.js | 2 ++ packages/bump/src/bump/Points.js | 6 ++++ packages/bump/src/bump/hooks.js | 4 ++- packages/bump/stories/bump.stories.js | 48 ++++++++++++++++++++++++++- 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/packages/bump/src/bump/Point.js b/packages/bump/src/bump/Point.js index f7b7ce70c..0677cb7db 100644 --- a/packages/bump/src/bump/Point.js +++ b/packages/bump/src/bump/Point.js @@ -29,6 +29,8 @@ Point.propTypes = { data: PropTypes.object.isRequired, x: PropTypes.number.isRequired, y: PropTypes.number.isRequired, + isActive: PropTypes.bool.isRequired, + isInactive: PropTypes.bool.isRequired, size: PropTypes.number.isRequired, color: PropTypes.string.isRequired, borderColor: PropTypes.string.isRequired, diff --git a/packages/bump/src/bump/Points.js b/packages/bump/src/bump/Points.js index 6b7d8f7af..a87cd7cf1 100644 --- a/packages/bump/src/bump/Points.js +++ b/packages/bump/src/bump/Points.js @@ -21,6 +21,8 @@ const Points = ({ pointComponent, points }) => { data: point.data, x: point.x, y: point.y, + isActive: point.isActive, + isInactive: point.isInactive, size: point.style.size, color: point.color, borderColor: point.borderColor, @@ -50,6 +52,8 @@ const Points = ({ pointComponent, points }) => { data: point.data, x: style.x, y: point.y, + isActive: point.isActive, + isInactive: point.isInactive, size: Math.max(style.size, 0), color: point.color, borderColor: point.borderColor, @@ -70,6 +74,8 @@ Points.propTypes = { data: PropTypes.object.isRequired, x: PropTypes.number.isRequired, y: PropTypes.number.isRequired, + isActive: PropTypes.bool.isRequired, + isInactive: PropTypes.bool.isRequired, color: PropTypes.string.isRequired, borderColor: PropTypes.string.isRequired, style: PropTypes.shape({ diff --git a/packages/bump/src/bump/hooks.js b/packages/bump/src/bump/hooks.js index 92d619047..3fb25786c 100644 --- a/packages/bump/src/bump/hooks.js +++ b/packages/bump/src/bump/hooks.js @@ -211,6 +211,8 @@ export const useBump = ({ ...rawPoint, serie, serieId: serie.id, + isActive: currentSerie === serie.id, + isInactive: currentSerie !== null && currentSerie !== serie.id, } point.color = getPointColor(point) point.borderColor = getPointBorderColor(point) @@ -220,7 +222,7 @@ export const useBump = ({ }) return pts - }, [series, getPointColor, getPointBorderColor, getPointStyle]) + }, [series, getPointColor, getPointBorderColor, getPointStyle, currentSerie]) return { xScale, diff --git a/packages/bump/stories/bump.stories.js b/packages/bump/stories/bump.stories.js index 6fec0f735..5ac7c36cc 100644 --- a/packages/bump/stories/bump.stories.js +++ b/packages/bump/stories/bump.stories.js @@ -41,6 +41,52 @@ const stories = storiesOf('Bump', module) stories.add('default', () => ) -stories.add('Custom points', () => ) +const CustomPoint = ({ x, y, isActive, isInactive, size, color, borderColor, borderWidth }) => { + return ( + + + + {isActive && ( + + A + + )} + {isInactive && ( + + I + + )} + + ) +} + +stories.add('Custom points', () => ( + +)) stories.add('Missing data', () => )