diff --git a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx index 6484e383..b4a02db7 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteChartList.tsx @@ -47,7 +47,7 @@ export default function WebsiteChartList({ - + {showCharts && } ) : null; diff --git a/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx b/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx index 2988494e..2439040a 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx @@ -28,7 +28,7 @@ export default function WebsiteDetailsPage({ websiteId }: { websiteId: string }) - + {!view && } {view && } diff --git a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx index b74482a4..15fa1a84 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames'; -import { useMessages, useSticky } from 'components/hooks'; +import { useDateRange, useMessages, useSticky } from 'components/hooks'; import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; import MetricCard from 'components/metrics/MetricCard'; import MetricsBar from 'components/metrics/MetricsBar'; @@ -15,12 +15,15 @@ export function WebsiteMetricsBar({ sticky, showChange = false, compareMode = false, + showFilter = false, }: { websiteId: string; sticky?: boolean; showChange?: boolean; compareMode?: boolean; + showFilter?: boolean; }) { + const { dateRange } = useDateRange(websiteId); const { formatMessage, labels } = useMessages(); const dateCompare = useStore(state => state[websiteId]?.dateCompare); const { ref, isSticky } = useSticky({ enabled: sticky }); @@ -28,6 +31,7 @@ export function WebsiteMetricsBar({ websiteId, compareMode && dateCompare, ); + const isAllTime = dateRange.value === 'all'; const { pageviews, visitors, visits, bounces, totaltime } = data || {}; @@ -97,16 +101,16 @@ export function WebsiteMetricsBar({ change={change} formatValue={formatValue} reverseColors={reverseColors} - showChange={compareMode || showChange} - showPrevious={compareMode} + showChange={!isAllTime && (compareMode || showChange)} + showPrevious={!isAllTime && compareMode} /> ); })}
- - + {showFilter && } + {compareMode && (
VS diff --git a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx index cef6e742..2c135150 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx @@ -14,25 +14,21 @@ export function RealtimeHeader({ data }: { data: RealtimeData }) { className={styles.card} label={formatMessage(labels.views)} value={pageviews?.length} - showChange />
diff --git a/src/components/input/WebsiteDateFilter.tsx b/src/components/input/WebsiteDateFilter.tsx index 4f2dee0a..486f5de1 100644 --- a/src/components/input/WebsiteDateFilter.tsx +++ b/src/components/input/WebsiteDateFilter.tsx @@ -6,7 +6,13 @@ import DateFilter from './DateFilter'; import styles from './WebsiteDateFilter.module.css'; import { DateRange } from 'lib/types'; -export function WebsiteDateFilter({ websiteId }: { websiteId: string }) { +export function WebsiteDateFilter({ + websiteId, + showAllTime = true, +}: { + websiteId: string; + showAllTime?: boolean; +}) { const { dir } = useLocale(); const { dateRange, saveDateRange } = useDateRange(websiteId); const { value, startDate, endDate, offset } = dateRange; @@ -30,7 +36,7 @@ export function WebsiteDateFilter({ websiteId }: { websiteId: string }) { endDate={endDate} offset={offset} onChange={handleChange} - showAllTime={true} + showAllTime={showAllTime} /> {value !== 'all' && !value.startsWith('range') && (
diff --git a/src/lib/load.ts b/src/lib/load.ts index c0a87897..7812ea0d 100644 --- a/src/lib/load.ts +++ b/src/lib/load.ts @@ -3,7 +3,7 @@ import { Website, Session } from '@prisma/client'; import redis from '@umami/redis-client'; export async function fetchWebsite(websiteId: string): Promise { - let website; + let website = null; if (redis.enabled) { website = await redis.client.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400); @@ -19,7 +19,7 @@ export async function fetchWebsite(websiteId: string): Promise { } export async function fetchSession(sessionId: string): Promise { - let session; + let session = null; if (redis.enabled) { session = await redis.client.fetch(`session:${sessionId}`, () => getSession(sessionId), 86400); diff --git a/src/pages/api/send.ts b/src/pages/api/send.ts index 11ba10d7..ab565e6e 100644 --- a/src/pages/api/send.ts +++ b/src/pages/api/send.ts @@ -144,7 +144,6 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => { eventData: data, ...session, sessionId: session.id, - visitId: session.visitId, }); } diff --git a/src/queries/analytics/reports/getRetention.ts b/src/queries/analytics/reports/getRetention.ts index fce7841d..de495cc4 100644 --- a/src/queries/analytics/reports/getRetention.ts +++ b/src/queries/analytics/reports/getRetention.ts @@ -172,8 +172,8 @@ async function clickhouseQuery( startDate, endDate, }, - ).then(a => { - return Object.values(a).map(a => { + ).then(result => { + return Object.values(result).map((a: any) => { return { date: a.date, day: Number(a.day),