@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.
58 lines (57 loc) • 2.21 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validTimesReducer = exports.selectValidTimes = exports.setValidTimes = exports.resetValidTimes = exports.fetchValidTimes = exports.ValidTimesActionType = void 0;
const tslib_1 = require("tslib");
const toolkit_1 = require("@reduxjs/toolkit");
const types_1 = require("./types");
const initialState = {
loading: 'idle',
error: null,
entity: null
};
var ValidTimesActionType;
(function (ValidTimesActionType) {
ValidTimesActionType["FetchValidTimes"] = "validTimes/fetchValidTimes";
})(ValidTimesActionType = exports.ValidTimesActionType || (exports.ValidTimesActionType = {}));
exports.fetchValidTimes = (0, toolkit_1.createAsyncThunk)(ValidTimesActionType.FetchValidTimes, (orderType, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const { api } = getState().config;
if (!api)
return;
try {
const validTimes = yield api.getValidTimes(orderType);
return validTimes;
}
catch (err) {
return rejectWithValue(err);
}
}));
const validTimesSlice = (0, toolkit_1.createSlice)({
name: types_1.ReducerType.ValidTimes,
initialState,
reducers: {
resetValidTimes: () => initialState,
setValidTimes: (state, action) => {
state.entity = action.payload;
}
},
extraReducers: builder => {
builder
.addCase(exports.fetchValidTimes.fulfilled, (state, action) => {
state.entity = action.payload;
state.loading = 'idle';
state.error = null;
})
.addCase(exports.fetchValidTimes.pending, state => {
state.loading = 'pending';
})
.addCase(exports.fetchValidTimes.rejected, (state, action) => {
state.loading = 'idle';
state.error = action.payload;
});
}
});
_a = validTimesSlice.actions, exports.resetValidTimes = _a.resetValidTimes, exports.setValidTimes = _a.setValidTimes;
const selectValidTimes = (state) => state.validTimes;
exports.selectValidTimes = selectValidTimes;
exports.validTimesReducer = validTimesSlice.reducer;