Skip to content

createGenericSlice

Generic for create Toolkit Slice

Import

import { createGenericSlice } from '@empeek-rnd-ui/redux/toolkit';

Usage

userSlice.ts

interface UsersState {
  list: {
    ids: string[];
    map: Record<string, any>;
  };
}

const initialData: UsersState = {
  list: {
    ids: [],
    map: {},
  },
};

const userSlice = createGenericSlice({
  name: 'users',
  initialData,
  reducers: {},
  extraReducers: (builder) => {
    // builder
  },
});

export const {
  resetSlice,
} = planSlice.actions;

export default planSlice.reducer;

Method createGenericSlice create toolkit slice with custom wrapper of data, adding additional objects to manage state of thunks. You can use all features of toolkit method createSlice

Structure

Your slice will have structure:

const state = {
  data: {
    list: {
      ids: [],
      map: {}
    }
  },
  statuses: {},
  errors: {},
  lastRequestId: {}
}

Actions

resetSlice - action to reset your slice to initialData

import { resetSlice } from './userSlice';

// in your react component 
dispatch(resetSlice());