import { BarChart2 } from 'lucide-react' import { useMemo } from 'react' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { SectionContent } from './SectionContent' import { dailyUsageToDataPoints } from './Usage.utils' import UsageBarChart from './UsageBarChart' import Panel from '@/components/ui/Panel' import { DataPoint } from '@/data/analytics/constants' import { PricingMetric, type OrgDailyUsageResponse } from '@/data/analytics/org-daily-stats-query' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import { DOCS_URL } from '@/lib/constants' export interface ComputeProps { orgDailyStats: OrgDailyUsageResponse | undefined isLoadingOrgDailyStats: boolean } const ActiveCompute = ({ orgDailyStats, isLoadingOrgDailyStats }: ComputeProps) => { const { billingAll } = useIsFeatureEnabled(['billing:all']) const chartData: DataPoint[] = dailyUsageToDataPoints( orgDailyStats, (metric) => metric === PricingMetric.ACTIVE_COMPUTE_HOURS ) const notAllValuesZero = useMemo(() => { return chartData.some( (dataPoint) => dataPoint['active_compute_hours'] && Number(dataPoint['active_compute_hours']) > 0 ) }, [chartData]) return (
Active Compute Hours usage
Active Compute Hours usage in period
{chartData.reduce( (prev, cur) => prev + ((cur['active_compute_hours'] as number) ?? 0), 0 )}{' '} hours
No data in period
May take up to one hour to show