53 lines
1.2 KiB
TypeScript
53 lines
1.2 KiB
TypeScript
'use client';
|
|
|
|
import type { IChartInput } from '@openpanel/validation';
|
|
|
|
import { Funnel } from '../funnel';
|
|
import { Chart } from './Chart';
|
|
import { withChartProivder } from './ChartProvider';
|
|
|
|
export type ReportChartProps = IChartInput;
|
|
|
|
export const ChartSwitch = withChartProivder(function ChartSwitch(
|
|
props: ReportChartProps
|
|
) {
|
|
if (props.chartType === 'funnel') {
|
|
return <Funnel {...props} />;
|
|
}
|
|
|
|
return <Chart {...props} />;
|
|
});
|
|
|
|
interface ChartSwitchShortcutProps {
|
|
projectId: ReportChartProps['projectId'];
|
|
range?: ReportChartProps['range'];
|
|
previous?: ReportChartProps['previous'];
|
|
chartType?: ReportChartProps['chartType'];
|
|
interval?: ReportChartProps['interval'];
|
|
events: ReportChartProps['events'];
|
|
}
|
|
|
|
export const ChartSwitchShortcut = ({
|
|
projectId,
|
|
range = '7d',
|
|
previous = false,
|
|
chartType = 'linear',
|
|
interval = 'day',
|
|
events,
|
|
}: ChartSwitchShortcutProps) => {
|
|
return (
|
|
<ChartSwitch
|
|
projectId={projectId}
|
|
range={range}
|
|
breakdowns={[]}
|
|
previous={previous}
|
|
chartType={chartType}
|
|
interval={interval}
|
|
name="Random"
|
|
lineType="bump"
|
|
metric="sum"
|
|
events={events}
|
|
/>
|
|
);
|
|
};
|