Skip to content

Commit

Permalink
feat: add some examples
Browse files Browse the repository at this point in the history
  • Loading branch information
im36-123 committed Oct 29, 2019
1 parent 5358cf9 commit b152b6f
Showing 1 changed file with 104 additions and 24 deletions.
128 changes: 104 additions & 24 deletions src/components/Accordion/Accordion.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,118 @@ import React, { useState } from 'react'
import { Accordion } from './Accordion'
import { AccordionTrigger } from './AccordionTrigger'
import { AccordionContent } from './AccordionContent'
import styled from '@emotion/styled'
import { Base as BaseComponent } from '../Base'

const arr = Array.from({ length: 3 })
// prettier-ignore
const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nullap ariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'

storiesOf('Accordion', module).add('Accordion', () => {
const [state, setstate] = useState('')
const handleClick = (value: string, _expanded: boolean) => {
setstate(value)
}

return (
<>
<Accordion name="accordion-0" expanded={state === 'accordion-0'} onClick={handleClick}>
<AccordionTrigger>Accordion 0</AccordionTrigger>
<AccordionContent>
<div>Content of Accordion 0</div>
</AccordionContent>
</Accordion>
<Accordion name="accordion-1" expanded={state === 'accordion-1'} onClick={handleClick}>
<AccordionTrigger icon="right">Accordion 1</AccordionTrigger>
<AccordionContent>
<div>Content of Accordion 1</div>
</AccordionContent>
</Accordion>
<Accordion name="accordion-2" expanded={state === 'accordion-2'} onClick={handleClick}>
<AccordionTrigger>Accordion 2</AccordionTrigger>
<AccordionContent>
<div>Content of Accordion 2</div>
</AccordionContent>
</Accordion>
<Accordion name="accordion-3" expanded={state === 'accordion-3'} onClick={handleClick}>
<AccordionTrigger>Accordion 3</AccordionTrigger>
<AccordionContent>
<div>Content of Accordion 3</div>
</AccordionContent>
</Accordion>
<Base>
<ul>
{arr.map((_, index) => (
<li className="border" key={index}>
<Accordion
name={`left-icon-${index}`}
expanded={state === `left-icon-${index}`}
onClick={handleClick}
>
<AccordionTrigger>Left Icon (default) {index}</AccordionTrigger>
<AccordionContent>
<Content>
<div>{lorem}</div>
</Content>
</AccordionContent>
</Accordion>
</li>
))}
</ul>
</Base>

<Base>
<ul>
{arr.map((_, index) => (
<li className="border" key={index}>
<Accordion
name={`right-icon-${index}`}
expanded={state === `right-icon-${index}`}
onClick={handleClick}
>
<AccordionTrigger icon="right">Right Icon {index}</AccordionTrigger>
<AccordionContent>
<Content>{lorem}</Content>
</AccordionContent>
</Accordion>
</li>
))}
</ul>
</Base>

<Base>
<ul>
{arr.map((_, index) => (
<li className="border" key={index}>
<Accordion
name={`no-icon-${index}`}
expanded={state === `no-icon-${index}`}
onClick={handleClick}
>
<AccordionTrigger icon="none">No Icon {index}</AccordionTrigger>
<AccordionContent>
<Content>{lorem}</Content>
</AccordionContent>
</Accordion>
</li>
))}
</ul>
</Base>

<Base>
<ul>
{arr.map((_, index) => (
<li key={index}>
<Accordion
name={`no-border-${index}`}
expanded={state === `no-border-${index}`}
onClick={handleClick}
>
<AccordionTrigger icon="none">No Border {index}</AccordionTrigger>
<AccordionContent>
<Content>{lorem}</Content>
</AccordionContent>
</Accordion>
</li>
))}
</ul>
</Base>
</>
)
})

const Base = styled(BaseComponent)`
margin: 1rem;
> ul {
margin: 0;
padding: 0;
list-style: none;
> .border:not(:last-of-type) {
border-bottom: 1px solid #d6d6d6;
}
}
`
const Content = styled.div`
font-size: 14px;
color: #333;
background-color: #f9f9f9;
padding: 1rem;
`

0 comments on commit b152b6f

Please sign in to comment.