diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef343700c..61707399d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -367,6 +367,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 + dist: {} + packages: '@ampproject/remapping@2.3.0': diff --git a/src/app/(main)/websites/[websiteId]/(reports)/revenue/Revenue.tsx b/src/app/(main)/websites/[websiteId]/(reports)/revenue/Revenue.tsx index c56eca68d..420c94fec 100644 --- a/src/app/(main)/websites/[websiteId]/(reports)/revenue/Revenue.tsx +++ b/src/app/(main)/websites/[websiteId]/(reports)/revenue/Revenue.tsx @@ -1,33 +1,35 @@ +import { useState } from 'react'; +import { Grid, Row, Text } from '@umami/react-zen'; +import classNames from 'classnames'; +import { colord } from 'colord'; import { BarChart } from '@/components/charts/BarChart'; -import { LoadingPanel } from '@/components/common/LoadingPanel'; -import { Panel } from '@/components/common/Panel'; import { TypeIcon } from '@/components/common/TypeIcon'; import { useCountryNames, useLocale, useMessages, useResultQuery } from '@/components/hooks'; -import { CurrencySelect } from '@/components/input/CurrencySelect'; import { ListTable } from '@/components/metrics/ListTable'; import { MetricCard } from '@/components/metrics/MetricCard'; import { MetricsBar } from '@/components/metrics/MetricsBar'; import { renderDateLabels } from '@/lib/charts'; import { CHART_COLORS } from '@/lib/constants'; -import { generateTimeSeries } from '@/lib/date'; import { formatLongCurrency, formatLongNumber } from '@/lib/format'; -import { Column, Grid, Row, Text } from '@umami/react-zen'; -import classNames from 'classnames'; -import { colord } from 'colord'; -import { useCallback, useMemo, useState } from 'react'; +import { useCallback, useMemo } from 'react'; +import { Panel } from '@/components/common/Panel'; +import { Column } from '@umami/react-zen'; +import { LoadingPanel } from '@/components/common/LoadingPanel'; +import { getMinimumUnit } from '@/lib/date'; +import { CurrencySelect } from '@/components/input/CurrencySelect'; export interface RevenueProps { websiteId: string; startDate: Date; endDate: Date; - unit: string; } -export function Revenue({ websiteId, startDate, endDate, unit }: RevenueProps) { +export function Revenue({ websiteId, startDate, endDate }: RevenueProps) { const [currency, setCurrency] = useState('USD'); const { formatMessage, labels } = useMessages(); - const { locale, dateLocale } = useLocale(); + const { locale } = useLocale(); const { countryNames } = useCountryNames(locale); + const unit = getMinimumUnit(startDate, endDate); const { data, error, isLoading } = useResultQuery('revenue', { websiteId, startDate, @@ -63,7 +65,7 @@ export function Revenue({ websiteId, startDate, endDate, unit }: RevenueProps) { const color = colord(CHART_COLORS[index % CHART_COLORS.length]); return { label: key, - data: generateTimeSeries(map[key], startDate, endDate, unit, dateLocale), + data: map[key], lineTension: 0, backgroundColor: color.alpha(0.6).toRgbString(), borderColor: color.alpha(0.7).toRgbString(), @@ -102,8 +104,6 @@ export function Revenue({ websiteId, startDate, endDate, unit }: RevenueProps) { ] as any; }, [data, locale]); - const renderXLabel = useCallback(renderDateLabels(unit, locale), [unit, locale]); - return ( @@ -127,7 +127,7 @@ export function Revenue({ websiteId, startDate, endDate, unit }: RevenueProps) { unit={unit} stacked={true} currency={currency} - renderXLabel={renderXLabel} + renderXLabel={renderDateLabels(unit, locale)} height="400px" /> diff --git a/src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage.tsx b/src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage.tsx index 0d74c38e9..19ac89dba 100644 --- a/src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage.tsx +++ b/src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage.tsx @@ -6,13 +6,13 @@ import { useDateRange } from '@/components/hooks'; export function RevenuePage({ websiteId }: { websiteId: string }) { const { - dateRange: { startDate, endDate, unit }, + dateRange: { startDate, endDate }, } = useDateRange(websiteId); return ( - + ); } diff --git a/src/app/(main)/websites/[websiteId]/settings/WebsiteTransferForm.tsx b/src/app/(main)/websites/[websiteId]/settings/WebsiteTransferForm.tsx index f16ab93c0..9752a48e5 100644 --- a/src/app/(main)/websites/[websiteId]/settings/WebsiteTransferForm.tsx +++ b/src/app/(main)/websites/[websiteId]/settings/WebsiteTransferForm.tsx @@ -37,8 +37,8 @@ export function WebsiteTransferForm({ const isTeamWebsite = !!website?.teamId; const items = - teams?.data?.filter(({ members }) => - members.some( + teams?.data?.filter(({ teamUser }) => + teamUser.find( ({ role, userId }) => [ROLES.teamOwner, ROLES.teamManager].includes(role) && userId === user.id, ), @@ -79,7 +79,7 @@ export function WebsiteTransferForm({