New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

redux-actions-helper

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redux-actions-helper

> helper for redux-actions

  • 0.0.5
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
76
decreased by-28.97%
Maintainers
1
Weekly downloads
 
Created
Source

redux-actions-helper

helper for redux-actions

travis-ci

Installation

npm install redux-actions-helper --save

createAction

createAction(
  actionsName:string,
  payloadCreator: function,
  metaCreator: function,
)
  • payloadCreator: (args) => payload

    default: (...args) => args

  • metaCreator: (args) => payload

    default: (...args) => args

//  actions/todo.js

import { createAction } from 'redux-actions-helper';

export const toggleTODO = createAction(
  'TOGGLE_TODO'
);

export const updateTODO = createAction(
  'UPDATE_TODO', (task)=>({
    id: task.id,
    task
  })
);

mapToAction then use it

//  app/Home.js

this.props.toggleTODO(1)

this.props.updateTODO({
  id: 1,
  title: 'new'
})

listenActions

//  reducer/todo.js
import { listenActions, handleActions } from 'redux-actions-helper';
import * as todoActions from '../../actions/todo'

const initState = {
  tasks: []
}

export default listenActions((on) => {
  on(todoActions.toggleTODO, (state, action) => {
    const taskId = action.payload
    return {
      ...
    }
  })
  on(todoActions.updateTODO, (state, action) => {
    const {id, task} = action.payload
    return {
      ...
    }
  })
}, initState)

// ==== you also can use handleActions , is same

handleActions({
  [todoActions.toggleTODO]:(state, action) => {
    const taskId = action.payload
    return {
     ...
    }
  },
  [todoActions.updateTODO]:(state, action) => {
    const {id, task} = action.payload
    return {
     ...
    }
  }
}, initState)

async

add promise-middleware to middlewares

import { promiseMiddleware } from 'redux-actions-helper';

applyMiddleware(
  ...
  promiseMiddleware,
  ...
)

//  actions/todo.js
import { createAction } from 'redux-actions-helper';

export const updateTODO = createAction(
  'UPDATE_TODO', (task)=>{
    return taskApi.update(task) //api will return a promise
  }
);
//  reducer/todo.js
import { listenActions } from 'redux-actions-helper';
import * as todoActions from '../../actions/todo'

const initState = {
  tasks: []
}

//handleActions 
handleActions({
  [todoActions.updateTODO]:(state, action) => {
    // api start
    const requestArgumens = action.payload[0] // task
    return {
      ...
    }
  },
  [todoActions.updateTODO.success]:(state, action) => {
    // promise resolve
    const response = action.payload
    const requestArgumens = action.meta[0] // task
    return {
      ...
    }
  },
  [todoActions.updateTODO.fail]:(state, action) => {
    // promise reject 
    const error = action.payload
    const requestArgumens = action.meta[0] // task
    return {
      ...
    }
  }
}, initState)

//listenActions 
export default listenActions((on) => {
  on(todoActions.updateTODO, (state, action) => {
    // api start
    const requestArgumens = action.payload[0] // task
    return {
      ...
    }
  })
  on.success(todoActions.updateTODO, (state, action) => {
    // promise resolve
      const response = action.payload
      const requestArgumens = action.meta[0] // task
      return {
        ...
      }
  })
  on.fail(todoActions.updateTODO, (state, action) => {
    // promise reject 
      const error = action.payload
      const requestArgumens = action.meta[0] // task
      return {
        ...
      }
  })
}, initState)

createThunkAction

if you use thunk middleware, you can use createThunkAction

createThunkAction(
  actionsName: string,
  payloadCreator: ({ dispatch, getState }, args) => payload,
  metaCreator: (args) => meta,
)
//  actions/todo.js
import { createThunkAction } from 'redux-actions-helper';

export const updateTODO = createThunkAction(
  'UPDATE_TODO', ({ dispatch, getState }, task)=>{
    const state = getState()
    return {
      id: task.id,
      task,
      operator: state.user.id
    }
  }
);

use it as same as createAction

//  app/Home.js

this.props.updateTODO({
  id: 1,
  title: 'new'
})

FAQs

Package last updated on 22 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc