mirror of https://github.com/buster-so/buster.git
Update BusterChart.ScatterChart.stories.tsx
This commit is contained in:
parent
400dae6e58
commit
f6a8246c9f
|
@ -4,6 +4,10 @@ import { ChartType } from '../../../../api/asset_interfaces/metric/charts/enum';
|
||||||
import { IColumnLabelFormat } from '../../../../api/asset_interfaces/metric/charts/columnLabelInterfaces';
|
import { IColumnLabelFormat } from '../../../../api/asset_interfaces/metric/charts/columnLabelInterfaces';
|
||||||
import { generateScatterChartData } from '../../../../mocks/chart/chartMocks';
|
import { generateScatterChartData } from '../../../../mocks/chart/chartMocks';
|
||||||
import { sharedMeta } from './BusterChartShared';
|
import { sharedMeta } from './BusterChartShared';
|
||||||
|
import { BusterChartProps } from '@/api/asset_interfaces/metric';
|
||||||
|
import React from 'react';
|
||||||
|
import { Slider } from '@/components/ui/slider';
|
||||||
|
import { useDebounceFn } from '@/hooks';
|
||||||
|
|
||||||
type ScatterChartData = ReturnType<typeof generateScatterChartData>;
|
type ScatterChartData = ReturnType<typeof generateScatterChartData>;
|
||||||
|
|
||||||
|
@ -55,7 +59,46 @@ export const Default: Story = {
|
||||||
export const LargeDataset: Story = {
|
export const LargeDataset: Story = {
|
||||||
args: {
|
args: {
|
||||||
...Default.args,
|
...Default.args,
|
||||||
data: generateScatterChartData(3000),
|
data: generateScatterChartData(3000)
|
||||||
className: 'w-[400px] h-[400px]'
|
},
|
||||||
|
render: (args) => {
|
||||||
|
const [isPending, startTransition] = React.useTransition();
|
||||||
|
const [points, setPoints] = React.useState(200);
|
||||||
|
const [data, setData] = React.useState(generateScatterChartData(points));
|
||||||
|
|
||||||
|
const { run: onSetData } = useDebounceFn(
|
||||||
|
(value: number) => {
|
||||||
|
startTransition(() => {
|
||||||
|
setData(generateScatterChartData(value));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
{ wait: 700 }
|
||||||
|
);
|
||||||
|
|
||||||
|
const onChangeValue = (value: number) => {
|
||||||
|
setPoints(value);
|
||||||
|
onSetData(value);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="space-y-4">
|
||||||
|
<div className="flex items-center gap-4">
|
||||||
|
<span className="text-sm">Number of points:</span>
|
||||||
|
<div className="w-64">
|
||||||
|
<Slider
|
||||||
|
min={0}
|
||||||
|
max={5000}
|
||||||
|
step={50}
|
||||||
|
defaultValue={[points]}
|
||||||
|
onValueChange={(value) => onChangeValue(value[0])}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<span className="w-16 text-sm">{points}</span>
|
||||||
|
</div>
|
||||||
|
<div className="h-[400px] w-[400px]">
|
||||||
|
<BusterChart {...args} data={data} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue