From 8629cda4d7412f04f7f843fbd5199b3617f504a1 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Wed, 5 Mar 2025 12:08:33 +0100 Subject: [PATCH] chore: remove dataUsageMultiMonthView flag (#9429) Remove data usage multi month view flag and deprecated components and functions. --- .../BillingPlan/useOverageCost.ts | 46 +--- .../NetworkTrafficUsage.tsx | 198 +-------------- .../useInstanceTrafficMetrics.ts | 38 +-- frontend/src/hooks/useTrafficData.ts | 228 ------------------ frontend/src/interfaces/uiConfig.ts | 1 - .../src/utils/traffic-calculations.test.ts | 66 ++--- .../traffic-data-usage-store-type.ts | 3 - .../traffic-data-usage-store.test.ts | 14 +- .../traffic-data-usage-store.ts | 17 +- src/lib/types/experimental.ts | 5 - src/server-dev.ts | 1 - 11 files changed, 35 insertions(+), 582 deletions(-) delete mode 100644 frontend/src/hooks/useTrafficData.ts diff --git a/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/useOverageCost.ts b/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/useOverageCost.ts index bea952a59b..80ae41455c 100644 --- a/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/useOverageCost.ts +++ b/frontend/src/component/admin/billing/BillingDashboard/BillingPlan/useOverageCost.ts @@ -1,26 +1,13 @@ import { endOfMonth, format, startOfMonth } from 'date-fns'; -import { - useInstanceTrafficMetrics, - useTrafficSearch, -} from 'hooks/api/getters/useInstanceTrafficMetrics/useInstanceTrafficMetrics'; +import { useTrafficSearch } from 'hooks/api/getters/useInstanceTrafficMetrics/useInstanceTrafficMetrics'; import { useMemo } from 'react'; import { calculateOverageCost, calculateTotalUsage, } from 'utils/traffic-calculations'; import { BILLING_TRAFFIC_BUNDLE_PRICE } from './BillingPlan'; -import { useUiFlag } from 'hooks/useUiFlag'; -import { useTrafficDataEstimation } from 'hooks/useTrafficData'; export const useOverageCost = (includedTraffic: number) => { - if (useUiFlag('dataUsageMultiMonthView')) { - return useNewOverageCostCalculation(includedTraffic); - } else { - return useOldOverageCostCalculation(includedTraffic); - } -}; - -const useNewOverageCostCalculation = (includedTraffic: number) => { if (!includedTraffic) { return 0; } @@ -46,34 +33,3 @@ const useNewOverageCostCalculation = (includedTraffic: number) => { return overageCost; }; - -const useOldOverageCostCalculation = (includedTraffic: number) => { - const { - currentPeriod, - toChartData, - toTrafficUsageSum, - endpointsInfo, - getDayLabels, - } = useTrafficDataEstimation(); - - const traffic = useInstanceTrafficMetrics(currentPeriod.key); - - const overageCost = useMemo(() => { - if (!includedTraffic) { - return 0; - } - const trafficData = toChartData( - getDayLabels(currentPeriod.dayCount), - traffic, - endpointsInfo, - ); - const totalTraffic = toTrafficUsageSum(trafficData); - return calculateOverageCost( - totalTraffic, - includedTraffic, - BILLING_TRAFFIC_BUNDLE_PRICE, - ); - }, [includedTraffic, traffic, currentPeriod, endpointsInfo]); - - return overageCost; -}; diff --git a/frontend/src/component/admin/network/NetworkTrafficUsage/NetworkTrafficUsage.tsx b/frontend/src/component/admin/network/NetworkTrafficUsage/NetworkTrafficUsage.tsx index 1484df2426..89982ec906 100644 --- a/frontend/src/component/admin/network/NetworkTrafficUsage/NetworkTrafficUsage.tsx +++ b/frontend/src/component/admin/network/NetworkTrafficUsage/NetworkTrafficUsage.tsx @@ -1,10 +1,8 @@ -import { type FC, useEffect, useMemo, useState } from 'react'; -import useTheme from '@mui/material/styles/useTheme'; +import type { FC } from 'react'; import styled from '@mui/material/styles/styled'; import { usePageTitle } from 'hooks/usePageTitle'; -import Select from 'component/common/select'; import { Link as RouterLink } from 'react-router-dom'; -import { Alert, Link } from '@mui/material'; +import { Alert } from '@mui/material'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { @@ -18,25 +16,14 @@ import { } from 'chart.js'; import { Bar } from 'react-chartjs-2'; -import { useInstanceTrafficMetrics } from 'hooks/api/getters/useInstanceTrafficMetrics/useInstanceTrafficMetrics'; -import Grid from '@mui/material/Grid'; -import { NetworkTrafficUsagePlanSummary } from './NetworkTrafficUsagePlanSummary'; import annotationPlugin from 'chartjs-plugin-annotation'; -import { - calculateEstimatedMonthlyCost as deprecatedCalculateEstimatedMonthlyCost, - useTrafficDataEstimation, -} from 'hooks/useTrafficData'; import { customHighlightPlugin } from 'component/common/Chart/customHighlightPlugin'; import { useTrafficLimit } from './hooks/useTrafficLimit'; -import { BILLING_TRAFFIC_BUNDLE_PRICE } from 'component/admin/billing/BillingDashboard/BillingPlan/BillingPlan'; -import { useLocationSettings } from 'hooks/useLocationSettings'; import { PeriodSelector } from './PeriodSelector'; import { useUiFlag } from 'hooks/useUiFlag'; import { OverageInfo, RequestSummary } from './RequestSummary'; -import { calculateOverageCost } from 'utils/traffic-calculations'; import { currentMonth } from './dates'; -import { type ChartDatasetType, getChartLabel } from './chart-functions'; -import { createBarChartOptions } from './bar-chart-options'; +import { getChartLabel } from './chart-functions'; import { useTrafficStats } from './hooks/useStats'; import { BoldText, StyledBox, TopRow } from './SharedComponents'; import { useChartDataSelection } from './hooks/useChartDataSelection'; @@ -48,7 +35,7 @@ const TrafficInfoBoxes = styled('div')(({ theme }) => ({ gap: theme.spacing(2, 4), })); -const NewNetworkTrafficUsage: FC = () => { +const NetworkTrafficUsage: FC = () => { usePageTitle('Network - Data Usage'); const estimateTrafficDataCost = useUiFlag('estimateTrafficDataCost'); @@ -142,183 +129,6 @@ const NewNetworkTrafficUsage: FC = () => { ); }; -export const NetworkTrafficUsage: FC = () => { - const useNewNetworkTraffic = useUiFlag('dataUsageMultiMonthView'); - return useNewNetworkTraffic ? ( - - ) : ( - - ); -}; - -const OldNetworkTrafficUsage: FC = () => { - usePageTitle('Network - Data Usage'); - const theme = useTheme(); - - const { isOss } = useUiConfig(); - - const { locationSettings } = useLocationSettings(); - const { - record, - period, - setPeriod, - selectablePeriods, - getDayLabels, - toChartData, - toTrafficUsageSum, - endpointsInfo, - } = useTrafficDataEstimation(); - - const includedTraffic = useTrafficLimit(); - - const options = useMemo(() => { - return createBarChartOptions( - theme, - (tooltipItems: any) => { - const periodItem = record[period]; - const tooltipDate = new Date( - periodItem.year, - periodItem.month, - Number.parseInt(tooltipItems[0].label), - ); - return tooltipDate.toLocaleDateString( - locationSettings?.locale ?? 'en-US', - { - month: 'long', - day: 'numeric', - year: 'numeric', - }, - ); - }, - includedTraffic, - ); - }, [theme, period]); - - const traffic = useInstanceTrafficMetrics(period); - - const [labels, setLabels] = useState([]); - - const [datasets, setDatasets] = useState([]); - - const [usageTotal, setUsageTotal] = useState(0); - - const [overageCost, setOverageCost] = useState(0); - - const [estimatedMonthlyCost, setEstimatedMonthlyCost] = useState(0); - - const data = { - labels, - datasets, - }; - - useEffect(() => { - setDatasets(toChartData(labels, traffic, endpointsInfo)); - }, [labels, traffic]); - - useEffect(() => { - if (record && period) { - const periodData = record[period]; - setLabels(getDayLabels(periodData.dayCount)); - } - }, [period]); - - useEffect(() => { - if (data) { - const usage = toTrafficUsageSum(data.datasets); - setUsageTotal(usage); - if (includedTraffic > 0) { - const calculatedOverageCost = calculateOverageCost( - usage, - includedTraffic, - BILLING_TRAFFIC_BUNDLE_PRICE, - ); - setOverageCost(calculatedOverageCost); - - setEstimatedMonthlyCost( - deprecatedCalculateEstimatedMonthlyCost( - period, - data.datasets, - includedTraffic, - new Date(), - BILLING_TRAFFIC_BUNDLE_PRICE, - ), - ); - } - } - }, [data]); - - return ( - Not enabled.} - elseShow={ - <> - 0 && overageCost > 0} - show={ - - Heads up! You are currently consuming - more requests than your plan includes and will - be billed according to our terms. Please see{' '} - - this page - {' '} - for more information. In order to reduce your - traffic consumption, you may configure an{' '} - - Unleash Edge instance - {' '} - in your own datacenter. - - } - /> - - - - - - -