25 lines
511 B
JavaScript
25 lines
511 B
JavaScript
import { produce } from "immer";
|
|
|
|
const defaultState = new Map();
|
|
|
|
export default (state = defaultState, action) =>
|
|
produce(state, (draft) => {
|
|
switch (action.type) {
|
|
case "ADD_NOTIFICATION": {
|
|
let id = Math.random().toString(36).substring(7);
|
|
draft.set(id, {
|
|
id: id,
|
|
...action.payload,
|
|
});
|
|
break;
|
|
}
|
|
|
|
case "REMOVE_NOTIFICATION":
|
|
draft.delete(action.payload.id);
|
|
break;
|
|
|
|
default:
|
|
return draft;
|
|
}
|
|
});
|