← marzneshin
/
v0.7.0
/
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}