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