stories/feat.locale.stories.js (233 lines of code) (raw):
import React, { useEffect } from 'react';
import { storiesOf } from '@storybook/react';
import {
Wbar,
Wline,
Wplaceholder,
Wmap,
ChartProvider,
setLanguage,
} from '@alicloud/cloud-charts';
const stories = storiesOf('locale', module);
const timeData = [
{
name: '机房A',
data: [
[1483372800000, 4092],
[1483459200000, 1592],
[1483545600000, 3714],
[1483632000000, 4854],
[1483718400000, 6514],
[1483804800000, 9022],
[1483891200000, 6023],
[1483977600000, 4018],
],
},
{
name: '机房B',
yAxis: 1,
// visible: false,
data: [
[1483372800000, 6051],
[1483459200000, 3278],
[1483545600000, 5175],
[1483632000000, 6548],
[1483718400000, 9048],
[1483804800000, 11394],
[1483891200000, 8597],
[1483977600000, 6588],
],
},
{
name: '异常点',
data: [
[1483372800000, 2051],
[1483459200000, 3278],
[1483545600000, 4175],
[1483632000000, 2548],
[1483718400000, 1048],
[1483804800000, 1394],
[1483891200000, 5597],
[1483977600000, 3588],
],
},
];
stories.add('通用图表', () => (
<ChartProvider language="en-us">
<Wbar height="300" data={[]} />
<Wline height="300" data={[]} />
<Wline height="300" data={timeData} />
</ChartProvider>
));
stories.add('通用图表自定义', () => (
<ChartProvider
locale={{
loading: '自定义加载中...',
error: '自定义数据异常',
noData: '自定义无数据',
empty: '自定义暂无数据',
reset: '自定义重置',
}}
>
<Wbar height="300" data={[]} />
<Wline height="300" data={[]} />
</ChartProvider>
));
stories.add('通用图表兼容', () => (
<ChartProvider language="zh-cn">
<Wbar height="300" data={[]} language="en-us" />
<Wline height="300" data={[]} />
</ChartProvider>
));
const data = [
{
name: '柱1',
data: [
['一', 59],
['二', 23],
['三', 19],
['四', 27],
['五', 77],
['六', 100],
['七', 70],
['八', 61],
['九', 15],
],
},
{
name: '柱2',
data: [
['一', 92],
['二', 15],
['三', 4],
['四', 49],
['五', 64],
['六', 76],
['七', 21],
['八', 100],
['九', 71],
],
},
];
stories.add('zoom', () => (
<ChartProvider language="en-us">
<Wbar height="300" data={data} config={{ zoom: true }} language="zh-cn" />
</ChartProvider>
));
stories.add('Wplaceholder', () => (
<ChartProvider language="en-us">
<Wplaceholder loading />
<Wplaceholder noData />
<Wplaceholder empty />
<Wplaceholder error />
</ChartProvider>
));
stories.add('Wplaceholder兼容', () => (
<ChartProvider
language="en-us"
locale={{
loading: '自定义加载中...',
error: '自定义数据异常',
noData: '自定义无数据',
empty: '自定义暂无数据',
reset: '自定义重置',
}}
>
<Wplaceholder loading language={'zh-cn'} />
<Wplaceholder
noData
locale={{
loading: '组件自定义加载中...',
error: '组件自定义数据异常',
noData: '组件自定义无数据',
empty: '组件自定义暂无数据',
reset: '组件自定义重置',
}}
/>
<Wplaceholder empty />
<Wplaceholder error />
</ChartProvider>
));
stories.add('setLanguage', () => {
useEffect(() => {
setTimeout(() => {
setLanguage('en-us');
}, 3000);
});
return <Wbar height="300" data={[]} />;
});
stories.add('优先级', () => {
useEffect(() => {
setTimeout(() => {
setLanguage('zh-cn');
}, 3000);
});
return (
<ChartProvider language="en-us">
<Wbar height="300" data={[]} />
<Wline height="300" data={[]} />
</ChartProvider>
);
});
stories.add('地图', () => (
<ChartProvider language="en-us">
<Wmap
config={{
label: true,
}}
/>
</ChartProvider>
));
stories.add('事件', () => {
useEffect(() => {
setTimeout(() => {
document.dispatchEvent(new CustomEvent('setCloudChartsLanguage', { detail: 'en-us' }));
}, 3000);
}, []);
return <Wline height="300" data={[]} />;
});
stories.add('自定义locale', () => {
useEffect(() => {
document.dispatchEvent(new CustomEvent('setCloudChartsLanguage', { detail: 'zh-cn' }));
setTimeout(() => {
document.dispatchEvent(new CustomEvent('setCloudChartsLanguage', { detail: 'en-us' }));
}, 3000);
}, []);
return (
<ChartProvider
locale={{
'zh-cn': {
empty: '测试测试',
},
'en-us': {
empty: 'test test',
},
}}
>
<Wbar height="300" data={[]} config={{ zoom: true }} language="zh-cn" />
</ChartProvider>
);
});
stories.add('地图自定义', () => {
useEffect(() => {
document.dispatchEvent(new CustomEvent('setCloudChartsLanguage', { detail: 'zh-cn' }));
setTimeout(() => {
document.dispatchEvent(new CustomEvent('setCloudChartsLanguage', { detail: 'en-us' }));
}, 3000);
}, []);
return (
<ChartProvider
locale={{
'zh-cn': {
beijing: '测试',
},
'en-us': {
beijing: 'test',
},
}}
>
<Wmap
config={{
label: true,
}}
/>
</ChartProvider>
);
});