Skip to content

Instantly share code, notes, and snippets.

@jsmanifest
Created April 14, 2020 15:03
Show Gist options
  • Save jsmanifest/015ecd524a16d930418ca44f1bff2c9f to your computer and use it in GitHub Desktop.
Save jsmanifest/015ecd524a16d930418ca44f1bff2c9f to your computer and use it in GitHub Desktop.
function List({
component: RootComponent = ListRoot,
collapsed,
toggle,
header,
label,
items = [],
limit = 3,
renderHeader,
renderList,
renderListItem,
}) {
return (
<RootComponent>
{renderHeader ? (
renderHeader()
) : header !== null ? (
<ListHeader>{header}</ListHeader>
) : null}
{renderList ? (
renderList()
) : (
<ListComponent
label={label}
items={
collapsed && items.length > limit ? items.slice(0, limit) : items
}
collapsed={collapsed}
toggle={toggle}
limit={limit}
total={items.length}
renderListItem={renderListItem}
/>
)}
</RootComponent>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment