diff options
Diffstat (limited to 'uidev/src/stories/infobox.stories.tsx')
-rw-r--r-- | uidev/src/stories/infobox.stories.tsx | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/uidev/src/stories/infobox.stories.tsx b/uidev/src/stories/infobox.stories.tsx new file mode 100644 index 000000000..2a5e8b0d5 --- /dev/null +++ b/uidev/src/stories/infobox.stories.tsx | |||
@@ -0,0 +1,126 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | import { observer } from 'mobx-react'; | ||
3 | import React from 'react'; | ||
4 | |||
5 | import { Infobox } from '@meetfranz/ui'; | ||
6 | import { storiesOf } from '../stores/stories'; | ||
7 | |||
8 | interface IStoreArgs { | ||
9 | icon?: string; | ||
10 | ctaLabel?: string; | ||
11 | type?: string; | ||
12 | dismissable?: boolean; | ||
13 | } | ||
14 | |||
15 | const createStore = (args?: IStoreArgs) => { | ||
16 | return observable(Object.assign({ | ||
17 | type: 'primary', | ||
18 | ctaOnClick: () => { | ||
19 | alert('on click handler'); | ||
20 | }, | ||
21 | }, args)); | ||
22 | }; | ||
23 | |||
24 | const WithStoreInfobox = observer(({ store, children }: { store: any, children: string | React.ReactNode }) => ( | ||
25 | <> | ||
26 | <Infobox | ||
27 | icon={store.icon} | ||
28 | ctaLabel={store.ctaLabel} | ||
29 | type={store.type} | ||
30 | ctaOnClick={store.ctaOnClick} | ||
31 | dismissable={store.dismissable} | ||
32 | > | ||
33 | {children} | ||
34 | </Infobox> | ||
35 | </> | ||
36 | )); | ||
37 | |||
38 | storiesOf('Infobox') | ||
39 | .add('Basic', () => ( | ||
40 | <WithStoreInfobox store={createStore()}>Welcome to the world of tomorrow</WithStoreInfobox> | ||
41 | )) | ||
42 | .add('Icon + Dismissable', () => ( | ||
43 | <WithStoreInfobox | ||
44 | store={createStore({ | ||
45 | icon: 'mdiEarth', | ||
46 | dismissable: true, | ||
47 | })} | ||
48 | > | ||
49 | Welcome to the world of tomorrow | ||
50 | </WithStoreInfobox> | ||
51 | )) | ||
52 | .add('With CTA', () => ( | ||
53 | <WithStoreInfobox | ||
54 | store={createStore({ | ||
55 | icon: 'mdiEarth', | ||
56 | ctaLabel: 'Ok, hi!', | ||
57 | })} | ||
58 | > | ||
59 | Welcome to the world of tomorrow | ||
60 | </WithStoreInfobox> | ||
61 | )) | ||
62 | .add('With long text', () => ( | ||
63 | <WithStoreInfobox | ||
64 | store={createStore({ | ||
65 | icon: 'mdiEarth', | ||
66 | ctaLabel: 'Ok, hi!', | ||
67 | })} | ||
68 | > | ||
69 | Franz is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Franz currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts,GroupMe, Skype and many more. | ||
70 | </WithStoreInfobox> | ||
71 | )) | ||
72 | .add('Secondary', () => ( | ||
73 | <WithStoreInfobox | ||
74 | store={createStore({ | ||
75 | icon: 'mdiEarth', | ||
76 | ctaLabel: 'Ok, hi!', | ||
77 | type: 'secondary', | ||
78 | })} | ||
79 | > | ||
80 | Welcome to the world of tomorrow | ||
81 | </WithStoreInfobox> | ||
82 | )) | ||
83 | .add('Success', () => ( | ||
84 | <WithStoreInfobox | ||
85 | store={createStore({ | ||
86 | icon: 'mdiEarth', | ||
87 | ctaLabel: 'Ok, hi!', | ||
88 | type: 'success', | ||
89 | })} | ||
90 | > | ||
91 | Welcome to the world of tomorrow | ||
92 | </WithStoreInfobox> | ||
93 | )) | ||
94 | .add('Warning', () => ( | ||
95 | <WithStoreInfobox | ||
96 | store={createStore({ | ||
97 | icon: 'mdiEarth', | ||
98 | ctaLabel: 'Ok, hi!', | ||
99 | type: 'warning', | ||
100 | })} | ||
101 | > | ||
102 | Welcome to the world of tomorrow | ||
103 | </WithStoreInfobox> | ||
104 | )) | ||
105 | .add('Danger', () => ( | ||
106 | <WithStoreInfobox | ||
107 | store={createStore({ | ||
108 | icon: 'mdiEarth', | ||
109 | ctaLabel: 'Ok, hi!', | ||
110 | type: 'danger', | ||
111 | })} | ||
112 | > | ||
113 | Welcome to the world of tomorrow | ||
114 | </WithStoreInfobox> | ||
115 | )) | ||
116 | .add('Inverted', () => ( | ||
117 | <WithStoreInfobox | ||
118 | store={createStore({ | ||
119 | icon: 'mdiEarth', | ||
120 | ctaLabel: 'Ok, hi!', | ||
121 | type: 'inverted', | ||
122 | })} | ||
123 | > | ||
124 | Welcome to the world of tomorrow | ||
125 | </WithStoreInfobox> | ||
126 | )); | ||