From c33674c6c5ba76c814f169b39323877446028f00 Mon Sep 17 00:00:00 2001 From: goodmice Date: Thu, 6 Oct 2022 11:45:42 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B8=D1=85=20?= =?UTF-8?q?=D0=B7=D0=BD=D0=B0=D1=87=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitoring/D3MonitoringCurrentValues.tsx | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) 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