admin/monitoring: use "kB/s" instead of "KB/s"
Massimo Melina committed
Dec 1, 2023 at 19:31 UTC
d9bafae71207548019babd6d6a918f99b42158d8
2 files changed
+14
-18
admin/src/MonitorPage.ts
+8
-18
@@ -3,21 +3,11 @@
3
import _ from "lodash"
4
import { createElement as h, useMemo, Fragment, useState, ReactNode } from "react"
5
import { apiCall, useApiEvents, useApiEx, useApiList } from "./api"
6
-import { PauseCircle, PlayCircle, LinkOff, Lock, Block, FolderZip, Upload, Download } from '@mui/icons-material'
6
+import { LinkOff, Lock, Block, FolderZip, Upload, Download } from '@mui/icons-material'
7
import { Box, Chip, ChipProps, Tooltip } from '@mui/material'
8
import { DataTable } from './DataTable'
9
-import {
10
- formatBytes,
11
- IconBtn,
12
- IconProgress,
13
- iconTooltip,
14
- ipForUrl,
15
- manipulateConfig,
16
- useBreakpoint,
17
- useBatch,
18
- CFG,
19
- usePauseButton
20
-} from "./misc"
9
+import { formatBytes, IconBtn, IconProgress, iconTooltip, ipForUrl, manipulateConfig, useBreakpoint, useBatch,
10
+ CFG, usePauseButton, formatSpeed } from "./misc"
11
import { Field, SelectField } from '@hfs/mui-grid-form'
12
import { StandardCSSProperties } from '@mui/system/styleFunctionSx/StandardCssProperties'
13
import { toast } from "./dialog"
@@ -47,8 +37,8 @@ function MoreInfo() {
37
sm && pair('connections'),
38
pair('sent', { render: formatBytes, minWidth: '4em' }),
39
sm && pair('got', { render: formatBytes, minWidth: '4em' }),
50
- pair('outSpeed', { label: "Output speed", render: formatSpeed }),
51
- md && pair('inSpeed', { label: "Input speed", render: formatSpeed }),
40
+ pair('outSpeed', { label: "Output speed", render: formatSpeedK }),
41
+ md && pair('inSpeed', { label: "Input speed", render: formatSpeedK }),
42
)
43
44
type Color = ChipProps['color']
@@ -193,7 +183,7 @@ function Connections() {
183
width: 110,
184
hideUnder: 'sm',
185
type: 'number',
196
- renderCell: ({ value, row }) => formatSpeed(Math.max(value||0, row.inSpeed||0) || undefined),
186
+ renderCell: ({ value, row }) => formatSpeedK(Math.max(value||0, row.inSpeed||0) || undefined),
187
mergeRender: { other: 'sent', fontSize: 'small', textAlign: 'right' }
188
},
189
{
@@ -242,6 +232,6 @@ function blockIp(ip: string) {
232
return manipulateConfig('block', data => [...data, { ip }])
233
}
234
245
-function formatSpeed(value: number | undefined) {
246
- return value === undefined ? '' : formatBytes(value * 1000, { post: "B/s", k: 1000, digits: 1 })
235
+function formatSpeedK(value: number | undefined) {
236
+ return value === undefined ? '' : formatSpeed(value * 1000, { digits: 1 })
237
}
src/cross.ts
+6
@@ -101,6 +101,12 @@ export function formatBytes(n: number, { post='B', k=1024, digits=NaN }={}) {
101
return nAsString + ' ' + (MULTIPLIERS[i]||'') + post
102
} // formatBytes
103
104
+export function formatSpeed(n: number, options: { digits?: number }={}) {
105
+ return formatBytes(n, { post: 'B/s', k: 1000, ...options })
106
+ .replace('K', 'k') // ref https://en.wikipedia.org/wiki/Data-rate_units
107
+
108
+}
109
+
110
export function prefix(pre:string, v:string|number|undefined|null|false, post:string='') {
111
return v ? pre+v+post : ''
112
}