← marzneshin
/
dashboard/src/modules/users/components/widgets/user-nodes-usage-widget/hooks/use-chart-config.ts
/
blame
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/components/widgets/user-nodes-usage-widget/hooks/use-chart-config.ts
· v0.7.4
Source
| 1 | e6e6467 | Dawsh | 2y ago | import { |
| 2 | e6e6467 | Dawsh | 2y ago | ChartConfig, |
| 3 | 7389ad0 | Mardin | 2y ago | } from "@marzneshin/common/components"; |
| 4 | e6e6467 | Dawsh | 2y ago | import { UserNodeUsagesResponse } from "@marzneshin/modules/users"; |
| 5 | d636f3f | Dawsh | 2y ago | import { interpolateColors } from "@marzneshin/common/utils"; |
| 6 | e6e6467 | Dawsh | 2y ago | import { interpolateRdBu } from "d3"; |
| 7 | e6e6467 | Dawsh | 2y ago | |
| 8 | e6e6467 | Dawsh | 2y ago | export const useChartConfig = (nodesUsage: UserNodeUsagesResponse) => { |
| 9 | e6e6467 | Dawsh | 2y ago | const numberOfNodes = nodesUsage.node_usages.length; |
| 10 | e6e6467 | Dawsh | 2y ago | const config: Record<string, any> = { |
| 11 | e6e6467 | Dawsh | 2y ago | views: { |
| 12 | e6e6467 | Dawsh | 2y ago | label: "Page Views", |
| 13 | e6e6467 | Dawsh | 2y ago | } |
| 14 | e6e6467 | Dawsh | 2y ago | } |
| 15 | e6e6467 | Dawsh | 2y ago | const colorRangeInfo = { |
| 16 | e6e6467 | Dawsh | 2y ago | colorStart: 0, |
| 17 | e6e6467 | Dawsh | 2y ago | colorEnd: 1, |
| 18 | e6e6467 | Dawsh | 2y ago | useEndAsStart: false, |
| 19 | e6e6467 | Dawsh | 2y ago | }; |
| 20 | e6e6467 | Dawsh | 2y ago | const colors = interpolateColors(numberOfNodes, interpolateRdBu, colorRangeInfo); |
| 21 | e6e6467 | Dawsh | 2y ago | nodesUsage.node_usages.forEach((node, i) => { |
| 22 | e6e6467 | Dawsh | 2y ago | config[node.node_name] = { label: node.node_name, color: colors[i] }; |
| 23 | e6e6467 | Dawsh | 2y ago | }) |
| 24 | e6e6467 | Dawsh | 2y ago | return config satisfies ChartConfig; |
| 25 | e6e6467 | Dawsh | 2y ago | } |