README
React ListView
Create List components with keyboard support
Usage
npm i react-listview-keys --save
Example
ListView = require 'react-listview'
ListView
className: 'list-view'
itemClassName: 'list-view__item'
selectedItemClassName: 'list-view__item--selected'
items: @state.listItems
selectedItemId: @state.selectedListItemId
collapsedItemIds: @state.collapsedListItemIds
onCollapseItem: @_handleCollapseListItem
onExpandItem: @_handleExpandListItem
onSelectItem: @_handleSelectListItem
renderItem: (itemId, parentItemIds = []) =>
item = @_getItemById(itemId)
if parentItemIds.length == 0
if item.children?.size > 0
SimpleListItem
item: item
else
FoldableListItem
item: item
else
SimpleListSubItem
item: item
Props
className
- CSS class of the whole ListView componentitemClassName
- CSS class of non-selected ListItemselectedItemClassName
- CSS class of selected ListItemitems
- immutable.List of items to renderselectedItemId
-id
of selected itemscollapsedItemIds
- immutable.List ofid
s of collapsed parent itemsonCollapseItem
- callback called when collapsing a parent itemonExpandItem
- callback called when expanding a parent itemonSelectItem
- callback called after click on an itemrenderItem
- function that renders the item (passed as callback so apps can handle the rendering of the main content itself)
Development
git clone git@github.com:avocode/react-listview.git
cd react-listview
npm install
Run tests:
npm test
TODOs
- refactor logic - support deeper lists
- add shouldcomponentupdates
- improve tests
- rethink tabIndices
- add more examples
- add prop for last item skipping