From 8df1648329858205e7f16736872f9758f341d430 Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Date: Mon, 17 Jul 2023 14:48:43 +0530 Subject: [PATCH] fix: dashboard pie chart legends overflow (#1528) --- .../components/workspace/issues-pie-chart.tsx | 97 +++++++++---------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/apps/app/components/workspace/issues-pie-chart.tsx b/apps/app/components/workspace/issues-pie-chart.tsx index dbd5eeceb..4a0222453 100644 --- a/apps/app/components/workspace/issues-pie-chart.tsx +++ b/apps/app/components/workspace/issues-pie-chart.tsx @@ -14,59 +14,58 @@ type Props = { export const IssuesPieChart: React.FC<Props> = ({ groupedIssues }) => ( <div> <h3 className="mb-2 font-semibold">Issues by States</h3> - <div className="rounded-[10px] border border-custom-border-300 bg-custom-background-100 p-4"> - <PieGraph - data={ - groupedIssues?.map((cell) => ({ - id: cell.state_group, - label: cell.state_group, - value: cell.state_count, - color: STATE_GROUP_COLORS[cell.state_group.toLowerCase()], - })) ?? [] - } - height="320px" - innerRadius={0.6} - cornerRadius={5} - padAngle={2} - enableArcLabels - arcLabelsTextColor="#000000" - enableArcLinkLabels={false} - legends={[ - { - anchor: "right", - direction: "column", - justify: false, - translateX: 0, - translateY: 56, - itemsSpacing: 10, - itemWidth: 100, - itemHeight: 18, - itemTextColor: "rgb(var(--color-text-secondary))", - itemDirection: "left-to-right", - itemOpacity: 1, - symbolSize: 12, - symbolShape: "square", - data: + <div className="rounded-[10px] border border-custom-border-100 bg-custom-background-100 p-4"> + <div className="grid grid-cols-1 sm:grid-cols-4"> + <div className="sm:col-span-3"> + <PieGraph + data={ groupedIssues?.map((cell) => ({ id: cell.state_group, - label: capitalizeFirstLetter(cell.state_group), + label: cell.state_group, value: cell.state_count, color: STATE_GROUP_COLORS[cell.state_group.toLowerCase()], - })) ?? [], - }, - ]} - activeInnerRadiusOffset={5} - colors={(datum) => datum.data.color} - tooltip={(datum) => ( - <div className="flex items-center gap-2 rounded-md border border-custom-border-300 bg-custom-background-80 p-2 text-xs"> - <span className="text-custom-text-200 capitalize">{datum.datum.label} issues:</span>{" "} - {datum.datum.value} - </div> - )} - theme={{ - background: "transparent", - }} - /> + })) ?? [] + } + height="320px" + innerRadius={0.6} + cornerRadius={5} + padAngle={2} + enableArcLabels + arcLabelsTextColor="#000000" + enableArcLinkLabels={false} + activeInnerRadiusOffset={5} + colors={(datum) => datum.data.color} + tooltip={(datum) => ( + <div className="flex items-center gap-2 rounded-md border border-custom-border-100 bg-custom-background-80 p-2 text-xs"> + <span className="text-custom-text-200 capitalize">{datum.datum.label} issues:</span>{" "} + {datum.datum.value} + </div> + )} + margin={{ + top: 32, + right: 0, + bottom: 32, + left: 0, + }} + theme={{ + background: "transparent", + }} + /> + </div> + <div className="flex sm:block items-center gap-3 flex-wrap justify-center sm:space-y-2 sm:self-end sm:justify-self-end sm:px-8 sm:pb-8"> + {groupedIssues?.map((cell) => ( + <div key={cell.state_group} className="flex items-center gap-2"> + <div + className="h-2 w-2" + style={{ backgroundColor: STATE_GROUP_COLORS[cell.state_group] }} + /> + <div className="capitalize text-custom-text-200 text-xs"> + {cell.state_group}- {cell.state_count} + </div> + </div> + ))} + </div> + </div> </div> </div> );