import { createModel } from "@rematch/core";
const counter = createModel({
state: 0, // initial state
reducers: {
// handle state changes with pure functions
increment: (state, payload) => {
if (typeof payload === "object") return state + 1;
return state + payload;
},
},
effects: {
// handle state changes with impure functions.
// use async/await for async actions
async incrementAsync(payload, rootState) {
await new Promise((resolve) => setTimeout(resolve, 1000));
this.increment(payload);
},
},
});
export default counter;