From 1eb81d2ebf52a3fab19aa34ef76ab79d492d5da0 Mon Sep 17 00:00:00 2001 From: Kyle Doherty <5248953+kdoh@users.noreply.github.com> Date: Fri, 23 Jul 2021 14:19:36 -0400 Subject: [PATCH] add ordinal legend to donuts (#17177) --- .../metabase/static-viz/categorical/donut.js | 7 ++++++ package.json | 1 + yarn.lock | 22 ++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/frontend/src/metabase/static-viz/categorical/donut.js b/frontend/src/metabase/static-viz/categorical/donut.js index c6901ff4beb..d64ad622bf9 100644 --- a/frontend/src/metabase/static-viz/categorical/donut.js +++ b/frontend/src/metabase/static-viz/categorical/donut.js @@ -3,6 +3,7 @@ import React from "react"; import { Pie } from "@visx/shape"; import { scaleOrdinal } from "@visx/scale"; import { Group } from "@visx/group"; +import { LegendOrdinal } from "@visx/legend"; export default function Donut({ data, accessors }, layout) { const scale = scaleOrdinal({ @@ -59,6 +60,12 @@ export default function Donut({ data, accessors }, layout) { }} </Pie> </Group> + <LegendOrdinal + scale={scale} + direction={"row"} + itemMargin={8} + shape={"circle"} + /> </svg> ); } diff --git a/package.json b/package.json index 03f7a2d4979..6db3365169b 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@visx/axis": "1.8.0", "@visx/grid": "1.16.0", "@visx/group": "1.7.0", + "@visx/legend": "^1.17.1", "@visx/scale": "1.7.0", "@visx/shape": "1.8.0", "ace-builds": "^1.4.7", diff --git a/yarn.lock b/yarn.lock index 67352f6610b..d002ccf40e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1439,6 +1439,15 @@ classnames "^2.2.5" prop-types "^15.6.2" +"@visx/group@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@visx/group/-/group-1.17.1.tgz#23818d3233511dc2360de4febc2a3ecd43c3c9d0" + integrity sha512-g8pSqy8TXAisiOzypnVycDynEGlBhfxtVlwDmsbYB+XSFGEjnOheQSDohDI+ia7ek54Mw9uYe05tx5kP1hRMYw== + dependencies: + "@types/react" "*" + classnames "^2.3.1" + prop-types "^15.6.2" + "@visx/group@1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@visx/group/-/group-1.7.0.tgz#e0ef2efbe00ef05326215d65b3d8a2b114df4f35" @@ -1449,6 +1458,17 @@ classnames "^2.2.5" prop-types "^15.6.2" +"@visx/legend@^1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@visx/legend/-/legend-1.17.1.tgz#3908321da90f3a30d3608cc572a6c13b34a3298b" + integrity sha512-vdB3EPHXYwTyS4g2MB/sVAvq6ddeyzjlTjsM6YNc6Nagwb4uTOuMeKT+t0jgLJejNMOcY7Q8eBjDDWAdiPNV1A== + dependencies: + "@types/react" "*" + "@visx/group" "1.17.1" + "@visx/scale" "1.14.0" + classnames "^2.3.1" + prop-types "^15.5.10" + "@visx/point@1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@visx/point/-/point-1.7.0.tgz#1df3c3425eae464f498473bcdda2fcae05c8ecbe" @@ -3802,7 +3822,7 @@ classlist-polyfill@^1.2.0: resolved "https://registry.yarnpkg.com/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz#935bc2dfd9458a876b279617514638bcaa964a2e" integrity sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4= -classnames@*, classnames@2.3.1: +classnames@*, classnames@2.3.1, classnames@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== -- GitLab