diff --git a/src/components/d3/monitoring/D3MonitoringCurrentValues.tsx b/src/components/d3/monitoring/D3MonitoringCurrentValues.tsx index c6c5a2a..ccc2a6c 100644 --- a/src/components/d3/monitoring/D3MonitoringCurrentValues.tsx +++ b/src/components/d3/monitoring/D3MonitoringCurrentValues.tsx @@ -5,20 +5,24 @@ import { ChartGroup, ChartSizes } from '@components/d3/monitoring/D3MonitoringCh import { makeDisplayValue } from '@utils' export type D3MonitoringCurrentValuesProps = { + /** Группы графиков */ groups: ChartGroup[] + /** Массив данных графика */ data: DataType[] - left: number + /** Объект, хранящий полезные размеры и отступы графика (нужен только groupWidth, chartsTop и groupLeft) */ sizes: ChartSizes } const display = makeDisplayValue({ def: '---', fixed: 2 }) -const _D3MonitoringCurrentValues = ({ groups, data, left, sizes }: D3MonitoringCurrentValuesProps) => ( - +/// `Array.at` вместе с `??` возвращает странный тип, поэтому его пока пришлось пометить как `any` +/// TODO: Исправить тип +const _D3MonitoringCurrentValues = ({ groups, data, sizes }: D3MonitoringCurrentValuesProps) => ( + {groups.map((group) => ( {group.charts.filter((chart) => chart.showCurrentValue).map((chart, i) => ( - + {chart.shortLabel ?? chart.label}: {display(chart.x((data.at(-1) ?? {}) as any))} @@ -28,6 +32,15 @@ const _D3MonitoringCurrentValues = ({ groups, dat ) +/** + * Отрисовывает последние значения графиков + * + * @typeParam DataType - тип данных для отрисовки графиков + * + * @param groups - Массив групп графиков + * @param data - Массив данных графиков + * @param sizes - Объект с полезными размерами и отступами внутри svg + */ export const D3MonitoringCurrentValues = memo(_D3MonitoringCurrentValues) as typeof _D3MonitoringCurrentValues export default D3MonitoringCurrentValues