Skip to content

Instantly share code, notes, and snippets.

@jsmanifest
Created April 14, 2020 14:59
Show Gist options
  • Save jsmanifest/1c2291a67301df711d93763a187988ff to your computer and use it in GitHub Desktop.
Save jsmanifest/1c2291a67301df711d93763a187988ff to your computer and use it in GitHub Desktop.
function List({ groupName, members = [] }) {
const [collapsed, setCollapsed] = React.useState(members.length > 3)
const constrainedMembers = collapsed ? members.slice(0, 3) : members
function toggle() {
setCollapsed((prevValue) => !prevValue)
}
return (
<div>
<h5>
Group: <em>{groupName}</em>
</h5>
<ul>
<p>Members</p>
{constrainedMembers.map((member) => (
<li key={member}>{member}</li>
))}
{members.length > 3 && (
<li className="expand">
<button type="button" onClick={toggle}>
Expand
</button>
</li>
)}
</ul>
</div>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment