implement exclude bounces feature
Some checks failed
Node.js CI / build (push) Has been cancelled

This commit is contained in:
Francis Cao 2026-01-30 00:12:13 -08:00
parent 4a3190b2da
commit ee698b636a
21 changed files with 189 additions and 69 deletions

View file

@ -1,4 +1,5 @@
import { Column, Grid, Row } from '@umami/react-zen';
import { BounceFilter } from '@/components/input/BounceFilter';
import { ExportButton } from '@/components/input/ExportButton';
import { FilterBar } from '@/components/input/FilterBar';
import { MonthFilter } from '@/components/input/MonthFilter';
@ -8,6 +9,7 @@ import { WebsiteFilterButton } from '@/components/input/WebsiteFilterButton';
export function WebsiteControls({
websiteId,
allowFilter = true,
allowBounceFilter = false,
allowDateFilter = true,
allowMonthFilter,
allowDownload = false,
@ -15,6 +17,7 @@ export function WebsiteControls({
}: {
websiteId: string;
allowFilter?: boolean;
allowBounceFilter?: boolean;
allowDateFilter?: boolean;
allowMonthFilter?: boolean;
allowDownload?: boolean;
@ -23,8 +26,9 @@ export function WebsiteControls({
return (
<Column gap>
<Grid columns={{ xs: '1fr', md: 'auto 1fr' }} gap>
<Row alignItems="center" justifyContent="flex-start">
{allowFilter ? <WebsiteFilterButton websiteId={websiteId} /> : <div />}
<Row alignItems="center" justifyContent="flex-start" gap="4">
{allowFilter && <WebsiteFilterButton websiteId={websiteId} />}
{allowBounceFilter && <BounceFilter />}
</Row>
<Row alignItems="center" justifyContent={{ xs: 'flex-start', md: 'flex-end' }}>
{allowDateFilter && (

View file

@ -30,6 +30,7 @@ export function WebsiteNav({
compare: undefined,
view: undefined,
unit: undefined,
excludeBounce: undefined,
});
const items = [

View file

@ -11,7 +11,7 @@ import { WebsitePanels } from './WebsitePanels';
export function WebsitePage({ websiteId }: { websiteId: string }) {
return (
<Column gap>
<WebsiteControls websiteId={websiteId} />
<WebsiteControls websiteId={websiteId} allowBounceFilter={true} />
<WebsiteMetricsBar websiteId={websiteId} showChange={true} />
<Panel minHeight="520px">
<Row justifyContent="end">