Redux
Skote React is having routing setup based on
React-Redux
&
Redux-thunk. The slices configurations are
located in
src/slices folder.
All module's actions are exported from
src/slices/index.ts file, All
module's reducer are exported from
src/slices/index.ts file, All
module's thunk are exported from
src/slices/thunk.ts file, The
src/slices/index.ts file is
handling global redux-slices of the template.
How To Create Actions & thunk ?
This example is created with new module's actions & thunk creation.
-
Create a folder named with your module in
src/slicesfolder and then create actions.ts, thunk.ts, reducer.ts & actionTypes.ts files and follow the pattern of other modules added in this template. -
Add your action name in the url_helper.ts
file. E.g.
export const GET_USERS_LIST = "/user-list";
-
Create the action in the fakebackend_helper.ts file. And
make sure you pass the same action type as a
type parameter which you
added in
fakebackend_helper.tsfile E.g.import { del, get, post, put } from "./api_helper"; import * as url from "./url_helper" export const getUsersList = () => api.get(url.GET_USERS_LIST); -
Add your action to the
reducer.ts as well. E.g.
import { getUsersList } from "./thunk"; export const initialState = { users: [], error: {} }; const contacts = createSlice({ name: 'ContactsSlice', initialState, reducers: {}, extraReducers: (builder) => { builder.addCase(getUsersList.fulfilled, (state: any, action: any) => { state.users = action.payload; }); builder.addCase(getUsersList.rejected, (state: any, action: any) => { state.error = action.payload.error || null; }); } }); export default contacts.reducer; -
Add thunk function & watcher for action in
thunk.ts file. E.g.
import { createAsyncThunk } from "@reduxjs/toolkit"; import { getUsersList as getUsersListApi } from "../../helpers/fakebackend_helper"; const getUsersList = createAsyncThunk("ecommerence/getUsersList", async () => { try { const response = getUsersListApi(); return response; } catch (error) { return error; } }) export default getUsersList;
slices Actions & Reducers
-
Layout :
This slices modules is made for layout's it handles theme customizer's actions & values. You can find reducer & thunk files in
src/slices/layoutsfolder. -
Authentication :
This slices modules handles app authentication. You can find reducer & thunk files in
src/slices/authfolder. -
Calendar :
This slices modules handles app Calendar's functionalities. You can find reducer & thunk files in
src/slices/calendarfolder. -
Chat :
This slices modules handles app Chat's functionalities. You can find reducer & thunk files in
src/slices/chatsfolder. -
Contacts :
This slices modules handles app Contact module's functionalities. You can find reducer & thunk files in
src/slices/contactsfolder. -
Crypto :
This slices modules handles app Crypto-Currency's functionalities. You can find reducer & thunk files in
src/slices/cryptofolder. -
Dashboard :
This slices modules handles app's default dashboard's functionalities. You can find reducer & thunk files in
src/slices/dashboardsfolder. -
E-Commerce :
This slices modules handles app e-commerce functionalities. You can find reducer & thunk files in
src/slices/e-commercefolder. -
E-Mail :
This slices modules handles app e-mail module's functionalities. You can find reducer & thunk files in
src/slices/emailfolder. -
Invoices :
This slices modules handles app invoice module's functionalities. You can find reducer & thunk files in
src/slices/invoicesfolder. -
Projects :
This slices modules handles app project module's functionalities. You can find reducer & thunk files in
src/slices/projectsfolder. -
Layout :
This slices modules handles app project module's functionalities. You can find utils, reducer & thunk files in
src/slices/layoutsfolder. -
Tasks :
This slices modules handles app task module's functionalities. You can find reducer & thunk files in
src/slices/tasksfolder. -
Jobs :
This slices modules handles app job module's functionalities. You can find reducer & thunk files in
src/slices/jobsfolder.