← marzneshin
/
dashboard/src/modules/users/components/widgets/user-nodes-usage-widget/hooks/use-transform-data.ts
/
blame
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/components/widgets/user-nodes-usage-widget/hooks/use-transform-data.ts
· v0.6.3
Source
| 1 | e6e6467 | Dawsh | 2y ago | import { UserNodeUsagesResponse } from "@marzneshin/modules/users"; |
| 2 | e6e6467 | Dawsh | 2y ago | |
| 3 | e6e6467 | Dawsh | 2y ago | export type ChartDataEntry = { |
| 4 | e6e6467 | Dawsh | 2y ago | datetime: string; |
| 5 | e6e6467 | Dawsh | 2y ago | [key: string]: number | string; |
| 6 | e6e6467 | Dawsh | 2y ago | }; |
| 7 | e6e6467 | Dawsh | 2y ago | |
| 8 | e6e6467 | Dawsh | 2y ago | export type ChartData = ChartDataEntry[]; |
| 9 | e6e6467 | Dawsh | 2y ago | |
| 10 | e6e6467 | Dawsh | 2y ago | export function useTransformData(initialData: UserNodeUsagesResponse): ChartData { |
| 11 | e6e6467 | Dawsh | 2y ago | const chartData: ChartData = []; |
| 12 | e6e6467 | Dawsh | 2y ago | const nodeDataMap: { [date: string]: ChartDataEntry } = {}; |
| 13 | e6e6467 | Dawsh | 2y ago | |
| 14 | e6e6467 | Dawsh | 2y ago | initialData.node_usages.forEach(node => { |
| 15 | e6e6467 | Dawsh | 2y ago | node.usages.forEach(usageData => { |
| 16 | e6e6467 | Dawsh | 2y ago | const [timestamp, usage] = usageData; |
| 17 | e6e6467 | Dawsh | 2y ago | const date = new Date(timestamp * 1000); |
| 18 | e6e6467 | Dawsh | 2y ago | const formattedDate = date.toISOString(); |
| 19 | e6e6467 | Dawsh | 2y ago | |
| 20 | e6e6467 | Dawsh | 2y ago | if (!nodeDataMap[formattedDate]) { |
| 21 | e6e6467 | Dawsh | 2y ago | nodeDataMap[formattedDate] = { datetime: formattedDate }; |
| 22 | e6e6467 | Dawsh | 2y ago | } |
| 23 | e6e6467 | Dawsh | 2y ago | nodeDataMap[formattedDate][node.node_name] = usage; |
| 24 | e6e6467 | Dawsh | 2y ago | }); |
| 25 | e6e6467 | Dawsh | 2y ago | }); |
| 26 | e6e6467 | Dawsh | 2y ago | |
| 27 | e6e6467 | Dawsh | 2y ago | for (const date in nodeDataMap) { |
| 28 | e6e6467 | Dawsh | 2y ago | chartData.push(nodeDataMap[date]); |
| 29 | e6e6467 | Dawsh | 2y ago | } |
| 30 | e6e6467 | Dawsh | 2y ago | return chartData; |
| 31 | e6e6467 | Dawsh | 2y ago | } |