import { createSlice } from "@reduxjs/toolkit"; import { IRequestState } from "./types"; const initialState: IRequestState = { request: "", hasAbbreviations: false, abbreviations: [], }; const requestSlice = createSlice({ name: "abbreviationSlice", initialState, reducers: { setRequest: (state, action: { payload: string }) => { state.request = action.payload; }, setAbbreviation: (state, action: { payload: { key: string; value: string } }) => { state.abbreviations = state.abbreviations.filter((e) => e.key !== action.payload.key); state.abbreviations.push(action.payload); state.hasAbbreviations = state.abbreviations.length > 0; }, clearAbbreviations: (state) => { state.abbreviations = []; state.hasAbbreviations = false; }, setHasAbbreviations: (state, action: { payload: boolean }) => { state.hasAbbreviations = action.payload; }, }, }); export const { setAbbreviation, clearAbbreviations, setRequest, setHasAbbreviations } = requestSlice.actions; export default requestSlice.reducer;