import React, { MouseEvent } from 'react';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';
import { withInfo } from "@storybook/addon-info";
import { withKnobs, number, boolean, select } from "@storybook/addon-knobs";
import { addReadme } from 'storybook-readme';
import ConsumeListView from '@/components/Payment/ConsumeListView';
import ConsumeListViewDoc from '@components/Payment/ConsumeListView/README.md';
import PayPlatFormOptions, { PAY_CHANNEL } from '@/components/Payment/PayPlatformOptions';
import PayPlatFormOptionsDoc from '@components/Payment/PayPlatformOptions/README.md';
import PriceOptions from '@/components/Payment/PriceOptions';
import PriceOptionsDoc from '@components/Payment/PriceOptions/README.md';
import WaitPayInfoView from '@/components/Payment/WaitPayInfoView';
import WaitPayInfoViewDoc from '@components/Payment/WaitPayInfoView/README.md';
import { consumeList as consumeData} from './data/consumeList.json';
const stories = storiesOf('Payment', module);
stories.addDecorator((storyFn) =>
{storyFn()}
)
stories.addDecorator(withKnobs);
stories.addDecorator(withInfo);
stories.addDecorator(addReadme);
stories.add(
'ConsumeListView',
() => {
const [toggle, setToggle] = React.useState(false);
return setToggle(!toggle)}
onConsumeItemClick={(e: MouseEvent, clickData: any) => { console.log(clickData); }}
dataSource={consumeData}
listLength={consumeData.length}
showLength={number("showLength", 5)}
/>
},
{
info: {
inline: true,
text: `
~~~typescript
setToggle(!toggle)}
dataSource={consumeData}
listLength={consumeData.length}
showLength={number("showLength", 5)}
/>
~~~
`,
// TableComponent: (props: TableComponentOptionProps) => {
// const { propDefinitions } = props;
// return propDefinitions.map(i => {
// return (
//
// {i.defaultValue}
//
// )
// })
// },
source: false,
maxPropStringLength: 500,
},
notes: 'A very simple example of addon notes',
readme: {
sidebar: ConsumeListViewDoc,
}
}
);
stories.add(
'PayPlatFormOptions',
() => {
const [payChannel, setPayChannel] = React.useState(PAY_CHANNEL.PAYPAL);
return (
{
action(`PayItemChange: ${value}`);
setPayChannel(value);
}}
isMobile={boolean("isMobile", false)}
size={select("size", { Small: "small", Normal: "normal", Large: "large"}, "normal")}
withTitle={boolean("withTitle", false)}
locale={select("locale", { ZH: 'zh', EN: 'en' }, "zh")}
/>
)
},
{
info: {
inline: true,
text: ``,
source: false,
maxPropStringLength: 500,
},
notes: 'A very simple example of addon notes',
readme: {
sidebar: PayPlatFormOptionsDoc,
}
}
);
stories.add(
'PriceOptions',
() => {
const [price, setPrice] = React.useState(0);
const refInput = React.useRef(null);
return (
setPrice(v)}
size={select("size", { Small: "small", Normal: "normal", Large: "large"}, "normal")}
withTitle={boolean("withTitle", false)}
focusScroll={boolean("focusScroll", false)}
inputRef={refInput}
/>
)
},
{
info: {
inline: true,
text: ``,
source: false,
maxPropStringLength: 500,
},
notes: 'A very simple example of addon notes',
readme: {
sidebar: PriceOptionsDoc,
}
}
)
stories.add(
'WaitPayInfoView',
() => {
return (
)
},
{
info: { inline: true, text: ``, source: false, maxPropStringLength: 500 },
notes: 'A very simple example of addon notes',
readme: {
sidebar: WaitPayInfoViewDoc,
}
}
)