import { useMemo } from 'react' import { ChartMetric } from 'ui-patterns/Chart' import { PageContainer } from 'ui-patterns/PageContainer' import { PageSection, PageSectionContent, PageSectionMeta, PageSectionSummary, PageSectionTitle, } from 'ui-patterns/PageSection' import { getCpuTooltipDetails, getMemoryTooltipDetails } from './EdgeFunctionMetricTooltipDetails' import { CPU_TIME_CHART_CONFIG, formatMetric, formatRate, getChartEmptyStateCopy, MEMORY_CHART_CONFIG, } from './EdgeFunctionOverview.utils' import type { EdgeFunctionChartDatum } from './EdgeFunctionOverview.utils' import { EdgeFunctionTimeSeriesChartCard } from './EdgeFunctionTimeSeriesChartCard' interface EdgeFunctionUsageSectionProps { data: EdgeFunctionChartDatum[] dateTimeFormat: string isLoading: boolean isError: boolean errorMessage?: string averageCpuTime: number maxCpuTime: number averageMemoryUsage: number totalHeapMemory: number totalExternalMemory: number totalMemoryByType: number } export const EdgeFunctionUsageSection = ({ data, dateTimeFormat, isLoading, isError, errorMessage, averageCpuTime, maxCpuTime, averageMemoryUsage, totalHeapMemory, totalExternalMemory, totalMemoryByType, }: EdgeFunctionUsageSectionProps) => { const cpuEmptyStateCopy = getChartEmptyStateCopy('CPU time', isError, errorMessage) const memoryEmptyStateCopy = getChartEmptyStateCopy('memory usage', isError, errorMessage) const cpuTooltipDetails = useMemo(() => getCpuTooltipDetails(averageCpuTime), [averageCpuTime]) const memoryTooltipDetails = useMemo( () => getMemoryTooltipDetails(averageMemoryUsage), [averageMemoryUsage] ) const cpuMetrics = (