ActionOn
Defines an actionOn listener against your model.
API
ActionOn<
Model extends object = {},
StoreModel extends object = {}
>
Model
The model against which the actionOn is being defined. You need to provide this so that the state that will be provided to your actionOn is correctly typed.
StoreModel
If you plan on targeting an action from another part of your store state then you will need to provide your store model so that the provided store actions are correctly typed.
Example
import { ActionOn, actionOn } from 'easy-peasy';
import { StoreModel } from '../index';
interface AuditModel {
logs: string[];
onTodoAdded: ActionOn<AuditModel, StoreModel>;
}
const auditModel: AuditModel = {
logs: [],
onTodoAdded: actionOn(
(actions, storeActions) => storeActions.todos.addTodo,
(state, payload) => {
state.logs.push(`Added todo: ${payload}`);
}
)
}