react-redux-provide-list
v0.4.3
Published
Provides a handful of common actions and props specific to lists and items.
Downloads
54
Readme
Feel free to submit any pull requests or create issues for anything you think might be useful!
react-redux-provide-list
Provides Array instances to React components.
Installation
npm install react-redux-provide react-redux-provide-list --saveUsage
Use react-redux-provide-list to create providers with predictably named actions and reducers specific to manipulating arrays. Create as many providers/instances as you want and share them across multiple components.
The main export provideList takes 3 arguments:
listName- defaults to'list'itemName- defaults to'item'indexName- defaults to'index'
Condensed example with default actions and reducers
import { render } from 'react-dom';
import provideList from 'react-redux-provide-list';
import GoodStuff from './components/GoodStuff';
const list = provideList();
const context = {
providers: { list },
providedState: {
list: [
{ fruit: 'apple' },
{ fruit: 'banana' }
{ vegetable: 'carrot' }
]
}
};
// the GoodStuff component should be decorated with @provide
render(<GoodStuff { ...context } />, document.getElementById('root'));An instance of GoodStuff will then be able to access the following actions:
setList (Array list)- sets the listsortList (Function sort)- sorts the listreverseList ()- reverses the listupdateList (Function update)- updates each item in the listfilterList (Function filter)- filters items in the listshiftList ()- removes the first item from the listpopList ()- removes the last item from the listsliceList (begin, end)- sets the list to the result of the slicespliceList (begin, deleteCount, ...items)- sets the list to the resulting spliceclearList ()- clears the listunshiftItem (...items)- puts the item(s) at the beginning of the listpushItem (...items)- puts the item(s) at the end of the listsetItem (index, item)- sets the item at theindexupdateItem (index, item)- updates or sets the item at someindex; if the existing item the update are both objects, it will merge the two as a new objectdeleteItem (index)- deletes the item at someindex
And reducers:
list- the list instance, of courselistLength- the length of the list instanceitem- if the component instance contains a prop key matching theindexName(e.g.,index), theitemat that key within the list will be provided
Condensed example with predictable, custom actions and reducers
import { render } from 'react-dom';
import provideList from 'react-redux-provide-list';
import GoodStuff from './components/GoodStuff';
const goodList = provideList('goodList', 'goodItem', 'goodIndex');
const context = {
providers: { goodList },
providedState: {
goodList: [
{ fruit: 'apple' },
{ fruit: 'banana' }
{ vegetable: 'carrot' }
]
}
};
// the GoodStuff component should be decorated with @provide
render(<GoodStuff { ...context } />, document.getElementById('root'));An instance of GoodStuff will then be able to access the same actions as above, but with slightly different keys:
setList->setGoodListsortList->sortGoodListreverseList->reverseGoodListupdateList->updateGoodListfilterList->filterGoodListshiftList->shiftGoodListpopList->popGoodListsliceList->sliceGoodListspliceList->spliceGoodListclearList->clearGoodListunshiftItem->unshiftGoodItempushItem->pushGoodItemsetItem->setGoodItemupdateItem->updateGoodItemdeleteItem->deleteGoodItem
And reducers:
list->goodListlistLength->goodListLengthitem->goodItem
