diff --git a/src/app/(main)/reports/[reportId]/BaseParameters.tsx b/src/app/(main)/reports/[reportId]/BaseParameters.tsx
index cf7ae21c..1da70d2b 100644
--- a/src/app/(main)/reports/[reportId]/BaseParameters.tsx
+++ b/src/app/(main)/reports/[reportId]/BaseParameters.tsx
@@ -4,7 +4,7 @@ import { parseDateRange } from 'lib/date';
import DateFilter from 'components/input/DateFilter';
import WebsiteSelect from 'components/input/WebsiteSelect';
import { useMessages, useTeamUrl } from 'components/hooks';
-import { ReportContext } from './ReportPage';
+import { ReportContext } from './Report';
export interface BaseParametersProps {
showWebsiteSelect?: boolean;
diff --git a/src/app/(main)/reports/[reportId]/Report.tsx b/src/app/(main)/reports/[reportId]/Report.tsx
new file mode 100644
index 00000000..76f73595
--- /dev/null
+++ b/src/app/(main)/reports/[reportId]/Report.tsx
@@ -0,0 +1,33 @@
+import { createContext, ReactNode } from 'react';
+import { Loading } from 'react-basics';
+import classNames from 'classnames';
+import { useReport } from 'components/hooks';
+import styles from './Report.module.css';
+
+export const ReportContext = createContext(null);
+
+export function Report({
+ reportId,
+ defaultParameters,
+ children,
+ className,
+}: {
+ reportId: string;
+ defaultParameters: { [key: string]: any };
+ children: ReactNode;
+ className?: string;
+}) {
+ const report = useReport(reportId, defaultParameters);
+
+ if (!report) {
+ return reportId ? : null;
+ }
+
+ return (
+
+ {children}
+
+ );
+}
+
+export default Report;
diff --git a/src/app/(main)/reports/[reportId]/ReportBody.tsx b/src/app/(main)/reports/[reportId]/ReportBody.tsx
index c9c3220e..6f4627f6 100644
--- a/src/app/(main)/reports/[reportId]/ReportBody.tsx
+++ b/src/app/(main)/reports/[reportId]/ReportBody.tsx
@@ -1,6 +1,6 @@
import styles from './ReportBody.module.css';
import { useContext } from 'react';
-import { ReportContext } from './ReportPage';
+import { ReportContext } from './Report';
export function ReportBody({ children }) {
const { report } = useContext(ReportContext);
diff --git a/src/app/(main)/reports/[reportId]/ReportHeader.tsx b/src/app/(main)/reports/[reportId]/ReportHeader.tsx
index 1c6cea6c..69ed46a9 100644
--- a/src/app/(main)/reports/[reportId]/ReportHeader.tsx
+++ b/src/app/(main)/reports/[reportId]/ReportHeader.tsx
@@ -1,7 +1,7 @@
import { useContext } from 'react';
import { Icon, LoadingButton, InlineEditField, useToasts } from 'react-basics';
import { useMessages, useApi, useNavigation, useTeamUrl } from 'components/hooks';
-import { ReportContext } from './ReportPage';
+import { ReportContext } from './Report';
import styles from './ReportHeader.module.css';
import { REPORT_TYPES } from 'lib/constants';
diff --git a/src/app/(main)/reports/[reportId]/ReportMenu.tsx b/src/app/(main)/reports/[reportId]/ReportMenu.tsx
index 4b2e7d83..9478a903 100644
--- a/src/app/(main)/reports/[reportId]/ReportMenu.tsx
+++ b/src/app/(main)/reports/[reportId]/ReportMenu.tsx
@@ -1,6 +1,6 @@
import styles from './ReportMenu.module.css';
import { useContext } from 'react';
-import { ReportContext } from './ReportPage';
+import { ReportContext } from './Report';
export function ReportMenu({ children }) {
const { report } = useContext(ReportContext);
diff --git a/src/app/(main)/reports/[reportId]/ReportPage.tsx b/src/app/(main)/reports/[reportId]/ReportPage.tsx
index badc4a7f..227efa8d 100644
--- a/src/app/(main)/reports/[reportId]/ReportPage.tsx
+++ b/src/app/(main)/reports/[reportId]/ReportPage.tsx
@@ -1,33 +1,6 @@
-import { createContext, ReactNode } from 'react';
-import { Loading } from 'react-basics';
-import classNames from 'classnames';
-import { useReport } from 'components/hooks';
-import styles from './Report.module.css';
+'use client';
+import ReportDetails from './ReportDetails';
-export const ReportContext = createContext(null);
-
-export function ReportPage({
- reportId,
- defaultParameters,
- children,
- className,
-}: {
- reportId: string;
- defaultParameters: { [key: string]: any };
- children: ReactNode;
- className?: string;
-}) {
- const report = useReport(reportId, defaultParameters);
-
- if (!report) {
- return reportId ? : null;
- }
-
- return (
-
- {children}
-
- );
+export default function ReportPage({ reportId }) {
+ return ;
}
-
-export default ReportPage;
diff --git a/src/app/(main)/reports/[reportId]/page.tsx b/src/app/(main)/reports/[reportId]/page.tsx
index 179ee2ff..12bf553a 100644
--- a/src/app/(main)/reports/[reportId]/page.tsx
+++ b/src/app/(main)/reports/[reportId]/page.tsx
@@ -1,12 +1,8 @@
-import ReportDetails from './ReportDetails';
import { Metadata } from 'next';
+import ReportPage from './ReportPage';
-export default function ReportDetailsPage({ params: { reportId } }) {
- if (!reportId) {
- return null;
- }
-
- return ;
+export default function ({ params: { reportId } }) {
+ return ;
}
export const metadata: Metadata = {
diff --git a/src/app/(main)/reports/event-data/EventDataParameters.tsx b/src/app/(main)/reports/event-data/EventDataParameters.tsx
index 4d95088f..2ee77a43 100644
--- a/src/app/(main)/reports/event-data/EventDataParameters.tsx
+++ b/src/app/(main)/reports/event-data/EventDataParameters.tsx
@@ -4,7 +4,7 @@ import Empty from 'components/common/Empty';
import Icons from 'components/icons';
import { useApi, useMessages } from 'components/hooks';
import { DATA_TYPES, REPORT_PARAMETERS } from 'lib/constants';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import FieldAddForm from '../[reportId]/FieldAddForm';
import ParameterList from '../[reportId]/ParameterList';
import BaseParameters from '../[reportId]/BaseParameters';
diff --git a/src/app/(main)/reports/event-data/EventDataReport.tsx b/src/app/(main)/reports/event-data/EventDataReport.tsx
index 9d761f22..fb786b31 100644
--- a/src/app/(main)/reports/event-data/EventDataReport.tsx
+++ b/src/app/(main)/reports/event-data/EventDataReport.tsx
@@ -1,4 +1,4 @@
-import ReportPage from '../[reportId]/ReportPage';
+import Report from '../[reportId]/Report';
import ReportHeader from '../[reportId]/ReportHeader';
import ReportMenu from '../[reportId]/ReportMenu';
import ReportBody from '../[reportId]/ReportBody';
@@ -13,7 +13,7 @@ const defaultParameters = {
export default function EventDataReport({ reportId }: { reportId?: string }) {
return (
-
+
} />
@@ -21,6 +21,6 @@ export default function EventDataReport({ reportId }: { reportId?: string }) {
-
+
);
}
diff --git a/src/app/(main)/reports/event-data/EventDataTable.tsx b/src/app/(main)/reports/event-data/EventDataTable.tsx
index e9a2b876..740cbce4 100644
--- a/src/app/(main)/reports/event-data/EventDataTable.tsx
+++ b/src/app/(main)/reports/event-data/EventDataTable.tsx
@@ -1,7 +1,7 @@
import { useContext } from 'react';
import { GridTable, GridColumn } from 'react-basics';
import { useMessages } from 'components/hooks';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
export function EventDataTable() {
const { report } = useContext(ReportContext);
diff --git a/src/app/(main)/reports/event-data/page.tsx b/src/app/(main)/reports/event-data/page.tsx
index b8a11749..1f2936e6 100644
--- a/src/app/(main)/reports/event-data/page.tsx
+++ b/src/app/(main)/reports/event-data/page.tsx
@@ -1,8 +1,8 @@
import { Metadata } from 'next';
-import EventDataReport from './EventDataReport';
+import EventDataReportPage from './EventDataReportPage';
export default function () {
- return ;
+ return ;
}
export const metadata: Metadata = {
diff --git a/src/app/(main)/reports/funnel/FunnelChart.tsx b/src/app/(main)/reports/funnel/FunnelChart.tsx
index e7ec7b59..38373517 100644
--- a/src/app/(main)/reports/funnel/FunnelChart.tsx
+++ b/src/app/(main)/reports/funnel/FunnelChart.tsx
@@ -3,7 +3,7 @@ import { Loading, StatusLight } from 'react-basics';
import { useMessages, useTheme } from 'components/hooks';
import BarChart from 'components/metrics/BarChart';
import { formatLongNumber } from 'lib/format';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import styles from './FunnelChart.module.css';
export interface FunnelChartProps {
diff --git a/src/app/(main)/reports/funnel/FunnelParameters.tsx b/src/app/(main)/reports/funnel/FunnelParameters.tsx
index 676c18d4..c4f8f384 100644
--- a/src/app/(main)/reports/funnel/FunnelParameters.tsx
+++ b/src/app/(main)/reports/funnel/FunnelParameters.tsx
@@ -13,7 +13,7 @@ import {
} from 'react-basics';
import Icons from 'components/icons';
import UrlAddForm from './UrlAddForm';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import BaseParameters from '../[reportId]/BaseParameters';
import ParameterList from '../[reportId]/ParameterList';
import PopupForm from '../[reportId]/PopupForm';
diff --git a/src/app/(main)/reports/funnel/FunnelReport.tsx b/src/app/(main)/reports/funnel/FunnelReport.tsx
index 47987348..1fd1a80f 100644
--- a/src/app/(main)/reports/funnel/FunnelReport.tsx
+++ b/src/app/(main)/reports/funnel/FunnelReport.tsx
@@ -1,7 +1,7 @@
import FunnelChart from './FunnelChart';
import FunnelTable from './FunnelTable';
import FunnelParameters from './FunnelParameters';
-import ReportPage from '../[reportId]/ReportPage';
+import Report from '../[reportId]/Report';
import ReportHeader from '../[reportId]/ReportHeader';
import ReportMenu from '../[reportId]/ReportMenu';
import ReportBody from '../[reportId]/ReportBody';
@@ -15,7 +15,7 @@ const defaultParameters = {
export default function FunnelReport({ reportId }: { reportId?: string }) {
return (
-
+
} />
@@ -24,6 +24,6 @@ export default function FunnelReport({ reportId }: { reportId?: string }) {
-
+
);
}
diff --git a/src/app/(main)/reports/funnel/FunnelTable.tsx b/src/app/(main)/reports/funnel/FunnelTable.tsx
index 67a2444a..1fe1fdd9 100644
--- a/src/app/(main)/reports/funnel/FunnelTable.tsx
+++ b/src/app/(main)/reports/funnel/FunnelTable.tsx
@@ -1,7 +1,7 @@
import { useContext } from 'react';
import ListTable from 'components/metrics/ListTable';
import { useMessages } from 'components/hooks';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
export function FunnelTable() {
const { report } = useContext(ReportContext);
diff --git a/src/app/(main)/reports/insights/InsightsParameters.tsx b/src/app/(main)/reports/insights/InsightsParameters.tsx
index 3799ec8c..a5a98dd2 100644
--- a/src/app/(main)/reports/insights/InsightsParameters.tsx
+++ b/src/app/(main)/reports/insights/InsightsParameters.tsx
@@ -12,7 +12,7 @@ import {
} from 'react-basics';
import Icons from 'components/icons';
import BaseParameters from '../[reportId]/BaseParameters';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import ParameterList from '../[reportId]/ParameterList';
import FilterSelectForm from '../[reportId]/FilterSelectForm';
import FieldSelectForm from '../[reportId]/FieldSelectForm';
diff --git a/src/app/(main)/reports/insights/InsightsReport.tsx b/src/app/(main)/reports/insights/InsightsReport.tsx
index 306b3e76..adfbbd20 100644
--- a/src/app/(main)/reports/insights/InsightsReport.tsx
+++ b/src/app/(main)/reports/insights/InsightsReport.tsx
@@ -1,4 +1,4 @@
-import ReportPage from '../[reportId]/ReportPage';
+import Report from '../[reportId]/Report';
import ReportHeader from '../[reportId]/ReportHeader';
import ReportMenu from '../[reportId]/ReportMenu';
import ReportBody from '../[reportId]/ReportBody';
@@ -14,7 +14,7 @@ const defaultParameters = {
export default function InsightsReport({ reportId }: { reportId?: string }) {
return (
-
+
} />
@@ -22,6 +22,6 @@ export default function InsightsReport({ reportId }: { reportId?: string }) {
-
+
);
}
diff --git a/src/app/(main)/reports/insights/InsightsTable.tsx b/src/app/(main)/reports/insights/InsightsTable.tsx
index f19aaa14..2cccc24c 100644
--- a/src/app/(main)/reports/insights/InsightsTable.tsx
+++ b/src/app/(main)/reports/insights/InsightsTable.tsx
@@ -1,7 +1,7 @@
import { useContext, useEffect, useState } from 'react';
import { GridTable, GridColumn } from 'react-basics';
import { useFormat, useMessages } from 'components/hooks';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
export function InsightsTable() {
diff --git a/src/app/(main)/reports/retention/RetentionParameters.tsx b/src/app/(main)/reports/retention/RetentionParameters.tsx
index 461dd90b..9bc1c548 100644
--- a/src/app/(main)/reports/retention/RetentionParameters.tsx
+++ b/src/app/(main)/reports/retention/RetentionParameters.tsx
@@ -1,7 +1,7 @@
import { useContext } from 'react';
import { useMessages } from 'components/hooks';
import { Form, FormButtons, FormRow, SubmitButton } from 'react-basics';
-import { ReportContext } from '../[reportId]/ReportPage';
+import { ReportContext } from '../[reportId]/Report';
import { MonthSelect } from 'components/input/MonthSelect';
import BaseParameters from '../[reportId]/BaseParameters';
import { parseDateRange } from 'lib/date';
diff --git a/src/app/(main)/reports/retention/RetentionReport.tsx b/src/app/(main)/reports/retention/RetentionReport.tsx
index 37fc5820..81b565dc 100644
--- a/src/app/(main)/reports/retention/RetentionReport.tsx
+++ b/src/app/(main)/reports/retention/RetentionReport.tsx
@@ -1,6 +1,6 @@
import RetentionTable from './RetentionTable';
import RetentionParameters from './RetentionParameters';
-import ReportPage from '../[reportId]/ReportPage';
+import Report from '../[reportId]/Report';
import ReportHeader from '../[reportId]/ReportHeader';
import ReportMenu from '../[reportId]/ReportMenu';
import ReportBody from '../[reportId]/ReportBody';
@@ -20,7 +20,7 @@ const defaultParameters = {
export default function RetentionReport({ reportId }: { reportId?: string }) {
return (
-
+
} />
@@ -28,6 +28,6 @@ export default function RetentionReport({ reportId }: { reportId?: string }) {
-
+
);
}
diff --git a/src/app/(main)/websites/[websiteId]/event-data/EventDataPage.tsx b/src/app/(main)/websites/[websiteId]/event-data/EventDataPage.tsx
new file mode 100644
index 00000000..77d367e5
--- /dev/null
+++ b/src/app/(main)/websites/[websiteId]/event-data/EventDataPage.tsx
@@ -0,0 +1,12 @@
+'use client';
+import WebsiteHeader from '../WebsiteHeader';
+import WebsiteEventData from './WebsiteEventData';
+
+export default function EventDataPage({ websiteId }) {
+ return (
+ <>
+
+
+ >
+ );
+}
diff --git a/src/app/(main)/websites/[websiteId]/event-data/page.tsx b/src/app/(main)/websites/[websiteId]/event-data/page.tsx
index b35093f1..5ae0799a 100644
--- a/src/app/(main)/websites/[websiteId]/event-data/page.tsx
+++ b/src/app/(main)/websites/[websiteId]/event-data/page.tsx
@@ -1,15 +1,10 @@
-import WebsiteHeader from '../WebsiteHeader';
-import WebsiteEventData from './WebsiteEventData';
+import { Metadata } from 'next';
+import EventDataPage from './EventDataPage';
-export default function WebsiteEventDataPage({ params: { websiteId } }) {
- if (!websiteId) {
- return null;
- }
-
- return (
- <>
-
-
- >
- );
+export default async function ({ params: { websiteId } }) {
+ return ;
}
+
+export const metadata: Metadata = {
+ title: 'Event Data | Umami',
+};