From d30c02f8c8fc08638dcb3961792c6c1c5e62ef5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A7=80=EC=B2=A0?= Date: Thu, 6 Mar 2025 13:07:21 +0900 Subject: [PATCH] Pie Chart Sample --- .../src/ui/pie-chart/chart.stories.tsx | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 packages/common/components/src/ui/pie-chart/chart.stories.tsx diff --git a/packages/common/components/src/ui/pie-chart/chart.stories.tsx b/packages/common/components/src/ui/pie-chart/chart.stories.tsx new file mode 100644 index 000000000..199878356 --- /dev/null +++ b/packages/common/components/src/ui/pie-chart/chart.stories.tsx @@ -0,0 +1,134 @@ +import type { Meta, StoryObj } from "@storybook/react"; + +import { + Chart as ChartJS, + ArcElement, + Tooltip, + Legend, + type ChartOptions, +} from "chart.js"; +import { Pie } from "react-chartjs-2"; +import { fakerKO as faker } from "@faker-js/faker"; +import { getCssVariableValue } from "../../lib/utils"; + +const meta: Meta = { + title: "Chart/Pie", + component: Pie, + parameters: { + docs: { + description: { + component: ` +- [Docs](https://react-chartjs-2.js.org/) + `, + }, + source: { + code: ` +import { + Chart as ChartJS, + ArcElement, + Tooltip, + Legend, +} from 'chart.js'; +import { Pie } from 'react-chartjs-2'; +import { fakerKO as faker } from "@faker-js/faker"; + +ChartJS.register( + ArcElement, + Tooltip, + Legend +); + +const labels = ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange']; + + +const data = { + labels, + datasets: [ + { + label: '# of Votes', + data: [12, 19, 3, 5, 2, 3], + backgroundColor: [ + 'rgba(255, 99, 132, 0.2)', + 'rgba(54, 162, 235, 0.2)', + 'rgba(255, 206, 86, 0.2)', + 'rgba(75, 192, 192, 0.2)', + 'rgba(153, 102, 255, 0.2)', + 'rgba(255, 159, 64, 0.2)', + ], + borderColor: [ + 'rgba(255, 99, 132, 1)', + 'rgba(54, 162, 235, 1)', + 'rgba(255, 206, 86, 1)', + 'rgba(75, 192, 192, 1)', + 'rgba(153, 102, 255, 1)', + 'rgba(255, 159, 64, 1)', + ], + borderWidth: 1, + }, + ], +}; + +return ( +
+ +
+); + `, + }, + }, + }, +}; +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => { + ChartJS.register( + ArcElement, + Tooltip, + Legend, + ); + + const labels = [ + 'Red', + 'Blue', + 'Yellow', + 'Green', + 'Purple', + 'Orange' + ]; + + const data = { + labels, + datasets: [ + { + label: '# of Votes', + data: [12, 19, 3, 5, 2, 3], + backgroundColor: [ + 'rgba(255, 99, 132, 0.2)', + 'rgba(54, 162, 235, 0.2)', + 'rgba(255, 206, 86, 0.2)', + 'rgba(75, 192, 192, 0.2)', + 'rgba(153, 102, 255, 0.2)', + 'rgba(255, 159, 64, 0.2)', + ], + borderColor: [ + 'rgba(255, 99, 132, 1)', + 'rgba(54, 162, 235, 1)', + 'rgba(255, 206, 86, 1)', + 'rgba(75, 192, 192, 1)', + 'rgba(153, 102, 255, 1)', + 'rgba(255, 159, 64, 1)', + ], + borderWidth: 1, + }, + ], + }; + + return ( +
+ +
+ ); + }, +};