forked from folio-org/stripes-components
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAccordion.stories.js
79 lines (77 loc) · 1.88 KB
/
Accordion.stories.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import React from 'react';
import { storiesOf } from '@storybook/react';
import withReadme from 'storybook-readme/with-readme';
import Readme from './readme.md';
import BasicUsage from './stories/BasicUsage';
import Accordion from './Accordion';
import AccordionSet from './AccordionSet';
const as = {
acc1: false,
acc2: false,
acc3: false,
acc4: false,
};
storiesOf('Accordion', module)
.addDecorator(withReadme(Readme))
.add('with defaults', () => <BasicUsage />)
.add('open', () => (
<Accordion open>
Content
</Accordion>
))
.add('Keyboard Navigation', () => (
<AccordionSet accordionStatus={as}>
<Accordion label="Up Arrow" id="acc1">
Content
</Accordion>
<Accordion label="Down Arrow" id="acc2">
Content
</Accordion>
<Accordion label="Home" id="acc3">
Content
</Accordion>
<Accordion label="End" id="acc4">
Content
</Accordion>
</AccordionSet>
))
.add('id and contentId', () => (
<Accordion contentId="pTag">
<p id="pTag">
Content
</p>
</Accordion>
))
.add('displayWhenOpen', () => (
<Accordion label="Here is a label" displayWhenOpen={<p>Add item</p>}>
Content
</Accordion>
))
.add('displayWhenClosed', () => (
<Accordion open={false} displayWhenClosed={<p>Some items</p>}>
Content
</Accordion>
))
.add('separator', () => (
<Accordion separator={false}>
Separator set to false.
</Accordion>
))
.add('toggleKeyHandlers', () => {
const handlers = {
delete() { console.log('delete'); }, // eslint-disable-line no-console
};
return (
<Accordion toggleKeyHandlers={handlers}>
content
</Accordion>
);
})
.add('header', () => {
const header = () => (<p>content</p>);
return (
<Accordion header={header}>
Content
</Accordion>
);
});