Overview | Usage | Examples | Demo Sandbox
📖 Overview
A simple middleware for create actions in redux, following as basic skeleton reduxsauce createActions however with several changes and simpler.
📟 Usage
Use createActions() to build yourself an object which contains Types and Actions.
Description of parameters
options: { prefix: '' }
// Assigns the value to the prefix of its actions and its types, if it is not past it is empty.
defaultActions: false
// By default is set false, if you pass true is added the three default actions (Request, Success, Error), it assigns the prefix in the actions and types.
actions: { }
// Here you will put all your actions, being able to overwrite the default or create other new actions.
Example of use
import createActions from '..'
export const { Actions, Types } = createActions({
options: { prefix: 'app' },
defaultActions: true,
actions: {
increment: null,
decrement: null,
changeText: ["text"],
changeName: { message: "Hello", name: "World" }
}
});
Return of actions and types
{
Actions: {
appRequest: ƒ (),
appSuccess: ƒ (),
appError: ƒ (),
changeName: ƒ (),
changeText: ƒ (),
decrement: ƒ (),
increment: ƒ ()
},
Types: {
APP_APPREQUEST: "APP_APPREQUEST",
APP_APPSUCCESS: "APP_APPSUCCESS",
APP_APPERROR: "APP_APPERROR",
APP_CHANGENAME: "APP_CHANGENAME",
APP_CHANGETEXT: "APP_CHANGETEXT",
APP_DECREMENT: "APP_DECREMENT",
APP_INCREMENT: "APP_INCREMENT",
}
}
If null is passed to the action, the type is only returned. Example:
Actions.increment();
// { type: APP_INCREMENT }
By passing an array, they become the input parameters of the action
Actions.changeText("create-action-redux");
// { type: APP_CHANGETEXT, payload: { text: "create-action-redux" } }
If you pass an object of { property: defaultValue }
, the default values are applied.
Actions.changeName({ name: "Redux" });
// { type: APP_CHANGENAME, payload: { message: "Hello", name: "Redux" } }
If you want to pass other parameters, just add that they will also be passed
Actions.changeName({ name: "Redux", send: true });
// { type: APP_CHANGENAME, payload: { message: "Hello", name: "Redux", send: true } }
To pass the input parameters defaultActions follows the same pattern. By default they are passed objects as parameters so just pass any object value which it understands as input parameter.
🗃 Examples
👀 Demo Sandbox
https://codesandbox.io/s/github/eliezer-souza/create-action-redux
MIT license, Copyright (c) 2019 Eliezer Souza.