import { Chart as ChartJS, ArcElement, Tooltip, Legend, CategoryScale, LinearScale, BarElement, Title, type ChartOptions, type ChartEvent, type ActiveElement, } from 'chart.js' import { useState } from 'react' import { Bar, Doughnut, Pie } from 'react-chartjs-2' ChartJS.register( ArcElement, CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend, ) type HandleChartClick = (event: ChartEvent, elements: ActiveElement[]) => void export const UiChartPie = () => { const data = { labels: [ 'Pidana', 'Perdata', 'Perceraian', 'Surat Bisnis', 'Surat Tanah', 'Lainnya', ], datasets: [ { data: [33.7, 13, 22.8, 9.3, 9.3, 21.2], backgroundColor: [ '#FFB300', '#4CAF50', '#3F51B5', '#F44336', '#2196F3', '#FF9800', ], hoverOffset: 4, }, ], } const options: ChartOptions<'pie'> = { maintainAspectRatio: true, responsive: false, plugins: { legend: { position: 'right', labels: { usePointStyle: true, pointStyle: 'circle', padding: 20, }, }, }, layout: { padding: 0, }, } return (

Top 5 Artikel

) } export const UiChartBar = () => { const yearlyData = { labels: ['2022', '2023', '2024'], datasets: [ { label: 'Total Sales', data: [800, 950, 1200], backgroundColor: '#1E3A8A', }, ], } const monthlyData = { labels: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ], datasets: [ { label: 'Monthly Sales', data: [70, 90, 750, 80, 90, 95, 75, 85, 78, 88, 95, 0], backgroundColor: '#2E2F7C', }, ], } const [view, setView] = useState('month') // Default tampil bulanan const [selectedYear, setSelectedYear] = useState('') const handleChartClick: HandleChartClick = (event, elements) => { if (elements.length > 0 && view === 'year') { const clickedIndex = elements[0].index const year = yearlyData.labels[clickedIndex] setSelectedYear(year) setView('month') } } const handleBackToYear = () => { setView('year') setSelectedYear('') } const options = { responsive: true, maintainAspectRatio: false, onClick: handleChartClick, scales: { y: { beginAtZero: true, max: view == 'month' ? 100 : 1500, ticks: { stepSize: 25, }, }, }, } return (

{view === 'year' ? 'Penjualan Tahunan' : `Penjualan Bulanan ${selectedYear || '2024'}`}

{view === 'month' && ( )}
) } export const ChartSubscription = () => { const data = { labels: ['Selesai', 'Belum Selesai'], datasets: [ { data: [70, 30], backgroundColor: ['#1e3a8a', '#e5e7eb'], borderWidth: 0, cutout: '70%', circumference: 180, rotation: 270, }, ], } const options: ChartOptions<'doughnut'> = { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'right', labels: { usePointStyle: true, pointStyle: 'circle', boxWidth: 10, }, }, tooltip: { enabled: false, }, }, } return (

Subscription Selesai

) }