Neapolitan Pizza Margherita

    create-actions

    2.0.0 • Public • Published

    create-actions

    A tool to create action creators

    Why would you use this?

    If you're working with instances of alt or if you want to use action creators then this facilitates the creation of them by keeping your code concise.

    Alt supports using action creators to dispatch, this means you can import your actions directly in a component to use them rather than inject it through using context.

    Example action creator

    const CountIncremented = {
      id: 'increment',
      dispatch() {
        return 1
      }
    }

    You can then listen to this action in your store normally

    this.bindAction(CountIncremented, this.incrementCount)

    and you can dispatch it using alt.dispatch

    alt.dispatch(CountIncremented)

    Writing various actions can be tedious so this tool creates a shorthand for creating them.

    Use it to create your own actions. Actions return the data they want to dispatch. Good for use with Alt

    import createActions, { dispatch } from 'create-actions'
     
    export default createActions('UserActions', {
      loggedIn: dispatch,
      loggedOut: dispatch,
      changedName(newName) {
        request.put('/users', { id: 4, name: newName })
        return newName
      },
    })

    You can also generate actions if all they are doing is passing data directly through to the store.

    import { generateActions } from 'create-actions'
     
    export default generateActions('MusicActions', [
      'genreSelected',
      'songPlayed',
      'songStopped',
      'fetchRelatedAlbums',
    ])

    Using this with something like redux is also straightforward.

    import { generateActions } from 'create-actions'
    const DocumentActions = generateActions('DocumentActions', ['changedTitle'])
     
    store.dispatch(DocumentActions.changedTitle.dispatch('This is the new title'))

    Install

    npm i create-actions

    DownloadsWeekly Downloads

    1

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • goatslacker