20 lines
497 B
JavaScript
20 lines
497 B
JavaScript
|
import React, { useState } from "react"
|
|||
|
import accordionStyles from "./accordion.module.css"
|
|||
|
|
|||
|
export default ({ title, initial, children }) => {
|
|||
|
const [open, setOpen] = useState(initial)
|
|||
|
|
|||
|
return (
|
|||
|
<>
|
|||
|
<div
|
|||
|
className={accordionStyles.header}
|
|||
|
onClick={() => setOpen(open => !open)}
|
|||
|
>
|
|||
|
<span>{title}</span>
|
|||
|
<span>{open ? "∨" : "∧"}</span>
|
|||
|
</div>
|
|||
|
{open ? <div className={accordionStyles.content}>{children}</div> : null}
|
|||
|
</>
|
|||
|
)
|
|||
|
}
|