mirror of
https://github.com/umami-software/umami.git
synced 2026-02-11 08:07:12 +01:00
Merge branch 'dev' of https://github.com/umami-software/umami into dev
This commit is contained in:
commit
f232ce2643
2 changed files with 22 additions and 6 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
import { Column, Grid, Row } from '@umami/react-zen';
|
import { Column, Grid, Row } from '@umami/react-zen';
|
||||||
import { BounceFilter } from '@/components/input/BounceFilter';
|
|
||||||
import { ExportButton } from '@/components/input/ExportButton';
|
import { ExportButton } from '@/components/input/ExportButton';
|
||||||
import { FilterBar } from '@/components/input/FilterBar';
|
import { FilterBar } from '@/components/input/FilterBar';
|
||||||
import { MonthFilter } from '@/components/input/MonthFilter';
|
import { MonthFilter } from '@/components/input/MonthFilter';
|
||||||
|
|
@ -9,7 +8,6 @@ import { WebsiteFilterButton } from '@/components/input/WebsiteFilterButton';
|
||||||
export function WebsiteControls({
|
export function WebsiteControls({
|
||||||
websiteId,
|
websiteId,
|
||||||
allowFilter = true,
|
allowFilter = true,
|
||||||
allowBounceFilter = false,
|
|
||||||
allowDateFilter = true,
|
allowDateFilter = true,
|
||||||
allowMonthFilter,
|
allowMonthFilter,
|
||||||
allowDownload = false,
|
allowDownload = false,
|
||||||
|
|
@ -28,7 +26,6 @@ export function WebsiteControls({
|
||||||
<Grid columns={{ xs: '1fr', md: 'auto 1fr' }} gap>
|
<Grid columns={{ xs: '1fr', md: 'auto 1fr' }} gap>
|
||||||
<Row alignItems="center" justifyContent="flex-start" gap="4">
|
<Row alignItems="center" justifyContent="flex-start" gap="4">
|
||||||
{allowFilter && <WebsiteFilterButton websiteId={websiteId} />}
|
{allowFilter && <WebsiteFilterButton websiteId={websiteId} />}
|
||||||
{allowBounceFilter && <BounceFilter />}
|
|
||||||
</Row>
|
</Row>
|
||||||
<Row alignItems="center" justifyContent={{ xs: 'flex-start', md: 'flex-end' }}>
|
<Row alignItems="center" justifyContent={{ xs: 'flex-start', md: 'flex-end' }}>
|
||||||
{allowDateFilter && (
|
{allowDateFilter && (
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { Checkbox, Row } from '@umami/react-zen';
|
||||||
|
import { useState } from 'react';
|
||||||
import { useMessages, useNavigation } from '@/components/hooks';
|
import { useMessages, useNavigation } from '@/components/hooks';
|
||||||
import { ListFilter } from '@/components/icons';
|
import { ListFilter } from '@/components/icons';
|
||||||
import { DialogButton } from '@/components/input/DialogButton';
|
import { DialogButton } from '@/components/input/DialogButton';
|
||||||
|
|
@ -12,12 +14,18 @@ export function WebsiteFilterButton({
|
||||||
alignment?: 'end' | 'center' | 'start';
|
alignment?: 'end' | 'center' | 'start';
|
||||||
}) {
|
}) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { updateParams, router } = useNavigation();
|
const { updateParams, router, query } = useNavigation();
|
||||||
|
const [excludeBounce, setExcludeBounce] = useState(!!query.excludeBounce);
|
||||||
|
|
||||||
const handleChange = ({ filters, segment, cohort }: any) => {
|
const handleChange = ({ filters, segment, cohort }: any) => {
|
||||||
const params = filtersArrayToObject(filters);
|
const params = filtersArrayToObject(filters);
|
||||||
|
|
||||||
const url = updateParams({ ...params, segment, cohort });
|
const url = updateParams({
|
||||||
|
...params,
|
||||||
|
segment,
|
||||||
|
cohort,
|
||||||
|
excludeBounce: excludeBounce ? 'true' : undefined,
|
||||||
|
});
|
||||||
|
|
||||||
router.push(url);
|
router.push(url);
|
||||||
};
|
};
|
||||||
|
|
@ -25,7 +33,18 @@ export function WebsiteFilterButton({
|
||||||
return (
|
return (
|
||||||
<DialogButton icon={<ListFilter />} label={formatMessage(labels.filter)} variant="outline">
|
<DialogButton icon={<ListFilter />} label={formatMessage(labels.filter)} variant="outline">
|
||||||
{({ close }) => {
|
{({ close }) => {
|
||||||
return <FilterEditForm websiteId={websiteId} onChange={handleChange} onClose={close} />;
|
return (
|
||||||
|
<>
|
||||||
|
<Row position="absolute" top="30px" right="30px">
|
||||||
|
<Row alignItems="center" gap>
|
||||||
|
<Checkbox value={excludeBounce ? 'true' : ''} onChange={setExcludeBounce}>
|
||||||
|
{formatMessage(labels.excludeBounce)}
|
||||||
|
</Checkbox>
|
||||||
|
</Row>
|
||||||
|
</Row>
|
||||||
|
<FilterEditForm websiteId={websiteId} onChange={handleChange} onClose={close} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
</DialogButton>
|
</DialogButton>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue