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', +};