gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/components/widgets/user-nodes-usage-widget/hooks/use-chart-config.ts · v0.6.1
Source
1 e6e6467 Dawsh 2y ago import {
2 e6e6467 Dawsh 2y ago ChartConfig,
3 e6e6467 Dawsh 2y ago } from "@marzneshin/components";
4 e6e6467 Dawsh 2y ago import { UserNodeUsagesResponse } from "@marzneshin/modules/users";
5 e6e6467 Dawsh 2y ago import { interpolateColors } from "@marzneshin/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 }