import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolkit" import { StateRequest, elementAddFetch } from "./utils" import { Postulant } from "../services/postulants" import { postulantAdd } from "../services/postulantsAccessors" const postulantAdapter = createEntityAdapter() const postulantAddSlice = createSlice({ name: "postulantAdd", initialState: postulantAdapter.getInitialState({ readyStatus: "idle", } as StateRequest), reducers: { getRequesting: (state) => { state.readyStatus = "request" }, getSuccess: (state, { payload }: PayloadAction) => { state.readyStatus = "success" postulantAdapter.setOne(state, payload) }, getFailure: (state, { payload }: PayloadAction) => { state.readyStatus = "failure" state.error = payload }, }, }) export default postulantAddSlice.reducer export const { getRequesting, getSuccess, getFailure } = postulantAddSlice.actions export const fetchPostulantAdd = elementAddFetch( postulantAdd, getRequesting, getSuccess, getFailure, () => null, () => null )