"use client"
import { useState } from "react"
import { LineChart } from "@/components/dithercharts/line-chart"
import type { ChartConfig } from "@/components/dithercharts/chart-config"
const chartData = [
{ date: "Apr 1", desktop: 298, mobile: 224 },
{ date: "Apr 2", desktop: 319, mobile: 246 },
{ date: "Apr 3", desktop: 329, mobile: 255 },
{ date: "Apr 4", desktop: 328, mobile: 250 },
{ date: "Apr 5", desktop: 320, mobile: 235 },
{ date: "Apr 6", desktop: 309, mobile: 217 },
{ date: "Apr 7", desktop: 299, mobile: 202 },
{ date: "Apr 8", desktop: 294, mobile: 198 },
{ date: "Apr 9", desktop: 297, mobile: 206 },
{ date: "Apr 10", desktop: 307, mobile: 224 },
{ date: "Apr 11", desktop: 324, mobile: 247 },
{ date: "Apr 12", desktop: 344, mobile: 266 },
{ date: "Apr 13", desktop: 363, mobile: 275 },
{ date: "Apr 14", desktop: 377, mobile: 270 },
{ date: "Apr 15", desktop: 380, mobile: 251 },
{ date: "Apr 16", desktop: 372, mobile: 224 },
{ date: "Apr 17", desktop: 350, mobile: 196 },
{ date: "Apr 18", desktop: 316, mobile: 175 },
{ date: "Apr 19", desktop: 274, mobile: 165 },
{ date: "Apr 20", desktop: 229, mobile: 168 },
{ date: "Apr 21", desktop: 184, mobile: 180 },
{ date: "Apr 22", desktop: 147, mobile: 195 },
{ date: "Apr 23", desktop: 120, mobile: 204 },
{ date: "Apr 24", desktop: 106, mobile: 202 },
{ date: "Apr 25", desktop: 105, mobile: 187 },
{ date: "Apr 26", desktop: 114, mobile: 161 },
{ date: "Apr 27", desktop: 131, mobile: 129 },
{ date: "Apr 28", desktop: 150, mobile: 100 },
{ date: "Apr 29", desktop: 168, mobile: 81 },
{ date: "Apr 30", desktop: 179, mobile: 75 },
{ date: "May 1", desktop: 184, mobile: 83 },
{ date: "May 2", desktop: 180, mobile: 98 },
{ date: "May 3", desktop: 171, mobile: 115 },
{ date: "May 4", desktop: 159, mobile: 126 },
{ date: "May 5", desktop: 148, mobile: 125 },
{ date: "May 6", desktop: 144, mobile: 112 },
{ date: "May 7", desktop: 150, mobile: 90 },
{ date: "May 8", desktop: 166, mobile: 66 },
{ date: "May 9", desktop: 195, mobile: 48 },
{ date: "May 10", desktop: 232, mobile: 41 },
{ date: "May 11", desktop: 276, mobile: 49 },
{ date: "May 12", desktop: 319, mobile: 70 },
{ date: "May 13", desktop: 358, mobile: 97 },
{ date: "May 14", desktop: 388, mobile: 122 },
{ date: "May 15", desktop: 404, mobile: 139 },
{ date: "May 16", desktop: 407, mobile: 144 },
{ date: "May 17", desktop: 396, mobile: 137 },
{ date: "May 18", desktop: 375, mobile: 123 },
{ date: "May 19", desktop: 348, mobile: 108 },
{ date: "May 20", desktop: 319, mobile: 101 },
{ date: "May 21", desktop: 294, mobile: 107 },
{ date: "May 22", desktop: 276, mobile: 126 },
{ date: "May 23", desktop: 266, mobile: 155 },
{ date: "May 24", desktop: 265, mobile: 187 },
{ date: "May 25", desktop: 269, mobile: 214 },
{ date: "May 26", desktop: 276, mobile: 230 },
{ date: "May 27", desktop: 281, mobile: 232 },
{ date: "May 28", desktop: 280, mobile: 223 },
{ date: "May 29", desktop: 270, mobile: 207 },
{ date: "May 30", desktop: 250, mobile: 192 },
{ date: "May 31", desktop: 221, mobile: 186 },
{ date: "Jun 1", desktop: 185, mobile: 192 },
{ date: "Jun 2", desktop: 146, mobile: 209 },
{ date: "Jun 3", desktop: 110, mobile: 234 },
{ date: "Jun 4", desktop: 81, mobile: 259 },
{ date: "Jun 5", desktop: 64, mobile: 276 },
{ date: "Jun 6", desktop: 61, mobile: 280 },
{ date: "Jun 7", desktop: 72, mobile: 269 },
{ date: "Jun 8", desktop: 96, mobile: 247 },
{ date: "Jun 9", desktop: 128, mobile: 221 },
{ date: "Jun 10", desktop: 165, mobile: 199 },
{ date: "Jun 11", desktop: 201, mobile: 187 },
{ date: "Jun 12", desktop: 231, mobile: 187 },
{ date: "Jun 13", desktop: 253, mobile: 198 },
{ date: "Jun 14", desktop: 265, mobile: 214 },
{ date: "Jun 15", desktop: 268, mobile: 227 },
{ date: "Jun 16", desktop: 265, mobile: 232 },
{ date: "Jun 17", desktop: 258, mobile: 223 },
{ date: "Jun 18", desktop: 254, mobile: 200 },
{ date: "Jun 19", desktop: 254, mobile: 170 },
{ date: "Jun 20", desktop: 263, mobile: 138 },
{ date: "Jun 21", desktop: 281, mobile: 114 },
{ date: "Jun 22", desktop: 306, mobile: 101 },
{ date: "Jun 23", desktop: 336, mobile: 102 },
{ date: "Jun 24", desktop: 366, mobile: 114 },
{ date: "Jun 25", desktop: 392, mobile: 129 },
{ date: "Jun 26", desktop: 408, mobile: 141 },
{ date: "Jun 27", desktop: 412, mobile: 143 },
{ date: "Jun 28", desktop: 401, mobile: 132 },
{ date: "Jun 29", desktop: 377, mobile: 110 },
{ date: "Jun 30", desktop: 342, mobile: 83 },
]
const chartConfig = {
desktop: { label: "Desktop" },
mobile: { label: "Mobile" },
} satisfies ChartConfig
export function LineChartInteractive() {
const [active, setActive] = useState<keyof typeof chartConfig>("desktop")
return (
<>
{(Object.keys(chartConfig) as (keyof typeof chartConfig)[]).map((key) => (
<button key={key} aria-pressed={active === key} onClick={() => setActive(key)}>
{chartConfig[key].label} {chartData.reduce((sum, row) => sum + row[key], 0).toLocaleString()}
</button>
))}
<LineChart
data={chartData}
config={{ [active]: chartConfig[active] }}
xKey="date"
label="Visitors by day"
height={250}
/>
</>
)
}