UNPKG

@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
"use strict"; 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;