@open-tender/cloud
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.
30 lines (29 loc) • 1.18 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.alertsReducer = exports.selectAlerts = exports.dismissAlert = exports.addAlert = exports.clearAlerts = void 0;
const toolkit_1 = require("@reduxjs/toolkit");
const types_1 = require("./types");
const utils_1 = require("@open-tender/utils");
const initialState = [];
const alertsSlice = (0, toolkit_1.createSlice)({
name: types_1.ReducerType.Alerts,
initialState,
reducers: {
clearAlerts: () => initialState,
addAlert: (state, action) => {
// const remaining = state.reverse().slice(0, 4).reverse()
return [
...state,
{ message: action.payload, id: (0, utils_1.makeRandomNumberString)() }
];
},
dismissAlert: (state, action) => {
return state.filter(i => i.id !== action.payload);
}
}
});
_a = alertsSlice.actions, exports.clearAlerts = _a.clearAlerts, exports.addAlert = _a.addAlert, exports.dismissAlert = _a.dismissAlert;
const selectAlerts = (state) => state.alerts;
exports.selectAlerts = selectAlerts;
exports.alertsReducer = alertsSlice.reducer;