commit bfcf271a64c33a60f61f511cec2198d9c8a9c51a Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Wed Nov 26 12:32:40 2025 +0100 wip commit8cd3b89fa3Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Tue Nov 25 22:33:58 2025 +0100 funnel commit95af86dc44Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Tue Nov 25 22:23:25 2025 +0100 wip commit727a218e6bAuthor: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Tue Nov 25 10:18:26 2025 +0100 conversion wip commit958ba535d6Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Tue Nov 25 10:18:20 2025 +0100 wip commit3bbeb927ccAuthor: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Tue Nov 25 09:18:48 2025 +0100 wip commitd99335e2f4Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Mon Nov 24 18:08:10 2025 +0100 wip commit1fa61b1ae9Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Mon Nov 24 15:50:28 2025 +0100 ts commit548747d826Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Mon Nov 24 13:17:01 2025 +0100 fix typecheck events -> series commit7b18544085Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Mon Nov 24 13:06:46 2025 +0100 fix report table commit57697a5a39Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Sat Nov 22 00:05:13 2025 +0100 wip commit06fb6c4f3cAuthor: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Fri Nov 21 11:21:17 2025 +0100 wip commitdd71fd4e11Author: Carl-Gerhard Lindesvärd <lindesvard@gmail.com> Date: Thu Nov 20 13:56:58 2025 +0100 formulas
108 lines
2.4 KiB
TypeScript
108 lines
2.4 KiB
TypeScript
import { ReportChart } from '@/components/report-chart';
|
|
import { Widget, WidgetBody } from '@/components/widget';
|
|
import { memo } from 'react';
|
|
|
|
import type { IChartProps } from '@openpanel/validation';
|
|
import { WidgetHead } from '../overview/overview-widget';
|
|
|
|
type Props = {
|
|
profileId: string;
|
|
projectId: string;
|
|
};
|
|
|
|
export const ProfileCharts = memo(
|
|
({ profileId, projectId }: Props) => {
|
|
const pageViewsChart: IChartProps = {
|
|
projectId,
|
|
chartType: 'linear',
|
|
series: [
|
|
{
|
|
type: 'event',
|
|
segment: 'event',
|
|
filters: [
|
|
{
|
|
id: 'profile_id',
|
|
name: 'profile_id',
|
|
operator: 'is',
|
|
value: [profileId],
|
|
},
|
|
],
|
|
id: 'A',
|
|
name: 'screen_view',
|
|
displayName: 'Events',
|
|
},
|
|
],
|
|
breakdowns: [
|
|
{
|
|
id: 'path',
|
|
name: 'path',
|
|
},
|
|
],
|
|
lineType: 'monotone',
|
|
interval: 'day',
|
|
name: 'Events',
|
|
range: '30d',
|
|
previous: false,
|
|
metric: 'sum',
|
|
};
|
|
|
|
const eventsChart: IChartProps = {
|
|
projectId,
|
|
chartType: 'linear',
|
|
series: [
|
|
{
|
|
type: 'event',
|
|
segment: 'event',
|
|
filters: [
|
|
{
|
|
id: 'profile_id',
|
|
name: 'profile_id',
|
|
operator: 'is',
|
|
value: [profileId],
|
|
},
|
|
],
|
|
id: 'A',
|
|
name: '*',
|
|
displayName: 'Events',
|
|
},
|
|
],
|
|
breakdowns: [
|
|
{
|
|
id: 'name',
|
|
name: 'name',
|
|
},
|
|
],
|
|
lineType: 'monotone',
|
|
interval: 'day',
|
|
name: 'Events',
|
|
range: '30d',
|
|
previous: false,
|
|
metric: 'sum',
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<Widget className="col-span-6 md:col-span-3">
|
|
<WidgetHead>
|
|
<span className="title">Page views</span>
|
|
</WidgetHead>
|
|
<WidgetBody>
|
|
<ReportChart report={pageViewsChart} />
|
|
</WidgetBody>
|
|
</Widget>
|
|
<Widget className="col-span-6 md:col-span-3">
|
|
<WidgetHead>
|
|
<span className="title">Events per day</span>
|
|
</WidgetHead>
|
|
<WidgetBody>
|
|
<ReportChart report={eventsChart} />
|
|
</WidgetBody>
|
|
</Widget>
|
|
</>
|
|
);
|
|
},
|
|
(a, b) => {
|
|
return a.profileId === b.profileId && a.projectId === b.projectId;
|
|
},
|
|
);
|