import type { PayloadAction } from "@reduxjs/toolkit"; import { createSlice } from "@reduxjs/toolkit"; import type { ILoader } from "@/models/loader.model"; export interface ILoaderStore { /** * This variable includes all the processes that are currently loading. */ processes: ILoader[]; } const loaderSlice = createSlice({ name: "loader", initialState: { processes: [], } as ILoaderStore, reducers: { setProcess(state, action: PayloadAction) { state.processes = [...state.processes, action.payload]; }, removeProcess(state, action: PayloadAction) { state.processes = state.processes.filter((x) => x.key !== action.payload); }, clearProcesses(state) { state.processes = []; }, }, }); export const loaderReducer = loaderSlice.reducer; export const loaderActions = loaderSlice.actions;